2017-12-15 3 views
0

Hallo ich verwende Selenium IDE.selen ide dynamische textfelder

Ich arbeite an einer Benutzeroberfläche mit einer dynamischen Nachrichtenbox, pro Artikel in einem Einkaufskorb.

Wenn ich wählen Sie das Element eine dynamische Feldnamen hat =

name = -1189499987_message

Also, wenn ich die IDE das nächste Mal laufen, es wird nicht funktionieren, wie der Name geändert hat. Wie kann ich dieses Feld finden, die Verwendung von Feuerpfad Ich bekomme folgende auf das Textfeld

/html/body/div [@ Klasse = 'Container content-container \ u0020basket Seite']/div [@ id = 'Inhalt ']/div [@ id =' Seiteninhalt ']/div [@ id =' Info ']/Formular [@ id =' shoppingBasket ']/div [@ Klasse =' Zeile cartRow ']/div [@ class =' col-sm-8 Element ']/div [@ Klasse =' Zeilenprodukt ']/div [@ Klasse =' col-sm-8 ']/div [@ Klasse =' Nachricht ']/div [@ Klasse =' Form-Gruppe ']/Textarea [@ class =' ​​formSteuerung erforderlich Eingang ']

ich habe ein paar Beispiele XPath versucht, aber es das Feld immer noch gewohnt

finden sie helfen

+0

Ich denke, das Problem mit dem Xpath ist, dass das Feld, hat keine ID?

300 characters remaining
shippers

Antwort

0

Auf einigen Websites ändert sich die ID einer Schaltfläche (oder eines Elements im Allgemeinen) zwischen verschiedenen Seitenladungen (changing, dynamic ID). Dies bedeutet, dass der Testfall bei der Wiedergabe fehlschlägt, da die Schaltfläche nach jeder Seitenaktualisierung eine neue ID hat.

Lösung: Normalerweise bleibt ein Teil der ID konstant e. G. Post-123456 und Post-555555. Wir können XPaths starts-with oder contains Funktionen verwenden, um nur nach dem stabilen Teil der ID zu suchen. Der Selektor wird also etwa so aussehen: //*[contains(@id, 'post-')].