J'ai une application GWT pour laquelle j'essaye d'écrire quelques tests en utilisant Selenium. J'utilise XPath pour identifier les éléments sur la page pour les tests. L'utilisation de id
ne fonctionnera pas car les valeurs id
sont générées automatiquement par GWT et peuvent changer. Les choses se sont bien quand je compris que je pouvais trouver les boutons de leurs étiquettes comme suit:Comment sélectionner uniquement les éléments visibles à l'aide de XPath?
//button[.='OK']
Cependant, quand je commencé à courir plusieurs tests que je commencé à avoir des problèmes. Je me suis rendu compte que le problème était toutes les différentes "pages" de l'application GWT une fois généré par le Javascript restent dans le HTML dans les éléments cachés <div>
. Cela signifiait que mes tests Selenium cliquaient parfois sur des boutons cachés au lieu du bouton visible dans la vue actuelle.
examen du HTML avec Firebug, il semble que GWT cache les éléments <div>
en ajoutant display: none
à leur attribut style
. Cela signifie que je peux trouver tous les boutons OK cachés comme suit:
//div[contains(@style,'display: none')]//button[.='OK']
Ceci trouvera tous les boutons OK cachés, i.e. les boutons qui ont un ancêtre <div>
qui est caché en ayant display: none
dans le style
.
Ma question est: comment utiliser XPath pour trouver seulement les boutons OK visibles? Comment puis-je trouver les boutons qui n'ont aucun ancêtre <div>
éléments avec display: none
dans le style
?
Voilà. Merci beaucoup. –
Dernier ne fonctionne pas s'il y a une autre div dans le dom-tree qui n'est pas caché:
– Fortega@Fortega et il est dit dans le texte autour de lui –