Frage

Die XPath meiner Elemente sind immer sehr schwer zu lesen.

// div [@ id = 'main_content'] / div [2] / div [2] / div [2] / div [4] / table / tbody / tr [2] / td / form / fieldset / p [1] / input

Es wäre schön, wenn ich das meiste davon als Variable speichern kann und sie später verwenden wie folgt aus:

| assertElementPresent | $ {MyForm}. / Fieldset / p [1] / Eingang |

Ist so etwas möglich? Es wäre meine Tests so viel einfacher zu lesen!

War es hilfreich?

Lösung

Sie wirklich sollten stattdessen Ihre Selen espressions in IDs von Elementen verankern. In 2 Monaten, wird niemand die leiseste Ahnung von dem, was die XPath-Punkten haben, vor allem, wenn der Test zu dem Zeitpunkt unterbrochen wird Sie herausfinden müssen. Wir routinemäßig ids zu Element fügen Sie einfach leichter testen zu machen. Wir haben gelernt, zu akzeptieren, dass wir Java-Code in besonderer Weise schreiben sie prüfbar zu machen, und ich denke, es ist auch für HTML ok ist.

Andere Tipps

Sie könnten nur schreiben:

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

Wie Krosenvold sagte jedoch lange XPaths kann ziemlich zerbrechlich sein. Wenn Ihre Sorgen um die Lesbarkeit im Code, und will, dass alle Ihre Locators in einer Datei, in der Sie Cascading Änderungen vornehmen können, können Sie eine UI-Element Karte zu prüfen, mit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top