Question

Les xpath de mes éléments deviennent extrêmement difficiles à lire.

// div [@ id = 'content_content'] / div [2] / div [2] / div [2] / div [4] / table / tbody / tr [2] / td / form / fieldset / p [1] / entrée

Ce serait bien si je pouvais stocker la plupart de ces éléments sous forme de variable et les utiliser plus tard comme ceci:

| assertElementPresent | $ {myForm}. / fieldset / p [1] / input |

Est-ce que quelque chose comme ça est possible? Cela rendrait mes tests beaucoup plus faciles à lire!

Était-ce utile?

La solution

Vous vraiment devriez plutôt ancrer vos expressions de sélénium dans les ID d'éléments. Dans deux mois, personne ne saura avoir la moindre idée de ce que pointe xpath, surtout si le test est interrompu au moment où vous devez le savoir. Nous ajoutons régulièrement les identifiants à l'élément simplement pour faciliter les tests. Nous avons appris à accepter que nous écrivions du code Java de manière spéciale pour le rendre testable, et je pense que le langage HTML convient également.

Autres conseils

Vous pouvez simplement écrire:

store | //div[@id='main_content']/div[2]/div[2]/div[2]/div[4]/table/tbody/tr[2]/td/form | myForm
assertElementPresent | xpath=${myForm}/fieldset/p[1]/input
Comme l'a dit Krosenvold, les longs xpath peuvent être assez fragiles. Si vous êtes préoccupé par la lisibilité de votre code et souhaitez que tous vos localisateurs soient dans un seul fichier où vous pouvez effectuer des modifications en cascade, vous pouvez envisager d'utiliser une mappe UI-Element.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top