2017-11-24 5 views
0

Ich verwende Selenium WebDriver zusammen mit Java. Ich versuche auf das Textfeld "Login ID" auf dieser Seite zuzugreifen, aber jedes Mal, wenn ich mich an- und abmelde, ändert sich der XPath-Wert im Textfeld "Login ID", sodass ich das Textfeld "Login ID" nicht erkennen kann jedes Mal mit dem gleichen Code.Xpath Änderung nach der Seite gest geladen jedes Mal

Welche Änderungen muss ich in meinem Code vornehmen, damit ich mit einem einzigen Code auf alle dynamischen XPaths zugreifen kann?

+0

Fragen Sie den Entwickler es sich um eine eindeutige ID zuzuweisen. Dann kannst du es finden, was auch immer das Dom ist. – Grasshopper

+0

Verwenden Sie dynamische Locators in Form von 'xpath' oder' cssSelector' – DebanjanB

+0

Bitte lesen Sie: [Unter welchen Umständen kann ich "dringende" oder ähnliche Phrasen zu meiner Frage hinzufügen, um schnellere Antworten zu erhalten?] (// meta.stackoverflow .com/q/326569) - die Zusammenfassung ist, dass dies nicht eine ideale Möglichkeit ist, Freiwillige anzusprechen, und ist wahrscheinlich kontraproduktiv, um Antworten zu erhalten. Bitte unterlassen Sie das Hinzufügen zu Ihren Fragen. – halfer

Antwort

1

Unten ist ein Beispiel dafür, was Sie möglicherweise als Behelfslösung

Typ XPaths verwenden:

  • mehrere Begegnungen: //div[@class='class' and contains(text(), 'text')]
  • teilweise Übereinstimmung: //span[contains(class, 'class')]
  • starts-with: //input[starts-with(@name,'input')

Das sind mehr vorteilhaft im Umgang mit dynamischen Elementen und wird robust sein.

Weitere Informationen finden Sie unter: https://sqa.stackexchange.com/questions/10342/how-to-find-element-using-contains-in-xpath

+0

Vielen Dank Danny als Ihre Lösung hat mir geholfen. Viel Wertschätzung. Tut mir leid, dass ich zu spät antwortete. –

+0

Kein Problem, froh, dass es geholfen hat! – Danny

Verwandte Themen