2015-06-04 13 views
8

ich auswählen müssen Sie das folgende Element auf der WebseiteWie ein Web-Element von Text mit Selen WebDriver, Java

<div class="b-datalist__item__addr">[email protected]</div> 

Ich bin Codierung mit Java für Selen WebDriver finden.
Benötigen Sie den genauen CSS-Selektor für dieses Element, um es mit driver.findElement(By.cssSelector(the-selector).click Befehl zu verwenden.
div[class='b-datalist__item__addr'] Selektor ist nicht gut genug, da ich nach [email protected] Text suchen muss, der kein Link ist, so kann ich findElement(By.linkText()) Befehl nicht verwenden.

Antwort

13

Css erlaubt keine textbasierte Suche. Xpath ist die einzige Option dort.

//div[contains(text(),'[email protected]')] 
+1

Es funktioniert, danke! – Eliyahu

+0

Froh, dass es Ihnen hilft – Saifur

+0

gibt es eine Möglichkeit, den Klassennamen oder einen zusätzlichen Parameter zum Xpath-Selektor oben hinzuzufügen? – Eliyahu

1

contains(node, substring) könnte das Problem lösen, aber beachten Sie, dass, wenn es mehr Elemente mit ähnlichen Textinhalten, zum Beispiel

Prädikats [contains(text(),'[email protected]')] werden alle von ihnen entsprechen

In diesem Fall ist es besser, 012 zu verwenden:

//div[starts-with(text(),'[email protected]')] 

oder erforderliches Element holt durch genauen Textinhalt:

//div[text()='[email protected]'] 
+0

Ich weiß das. Vielen Dank. – Eliyahu

Verwandte Themen