2015-10-01 8 views
5

Ich möchte jedes WebElement basierend auf Text mit XPath finden.Abrufen von WebElement per Text mit XPath in Selenium-Test

WebElement, dass ich interessiert bin zu finden,

WebElement that I am interested in

Sein HTML,

Its CSS

Im Grunde meines WebElement, die ich von Text enthält ein Eingabeelement abzuzurufen versuchen.

Ich verwende derzeit,

driver.findElement(By.xpath("//*[normalize-space(text()) = 'Own Hotel']")); 

, die nicht die WebElement oben nicht finden, aber es funktioniert in der Regel alle anderen Web-Elemente abzurufen.

Selbst,

By.xpath("//*[contains(text(),'Own Hotel')]") 

hat mir keine Ergebnisse geben. Ich bin zwar an genauem Textvergleich interessiert.

Ich bin auf der Suche nach einer Möglichkeit, Web-Element per Text zu finden, die nicht von den Elementen innerhalb des Web-Elements vorhanden sind. Wenn Text übereinstimmt, sollte das WebElement zurückgegeben werden.

Danke!

+0

keine Iframes auf Seite. Wirft "NoSuchElementException" – LINGS

+0

Es ist kein Warteproblem. Ich habe diesen xpath in Chrome getestet, als die Seite geladen wurde, das Element wird nicht gefunden. Daher ist mein XPath für diesen Fall nicht korrekt. Ich brauche alternative XAPTH. – LINGS

+0

Bitte geben Sie den HTML-Code als Text anstelle eines Bildes ein. Zu einem späteren Zeitpunkt wird das Bild nicht mehr verfügbar sein und diese Frage wird nicht so hilfreich sein. – JeffC

Antwort

4

Es scheint, dass Text innerhalb eines Etiketts verpackt ist und nicht eingegeben wird. Versuchen Sie, diese

driver.findElement(By.xpath(".//label[text()[normalize-space() = 'Own Hotel']]")); 

Es gibt schöne Erklärung über dieses XPath-Muster here

+0

Vielen Dank, das hat funktioniert! – LINGS

Verwandte Themen