2015-06-04 10 views
8

ho bisogno di trovare il seguente elemento della pagina webCome selezionare un elemento web dal testo con selenio WebDriver, Java

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

sto codifica con Java per selenio WebDriver.
È necessario il selettore CSS esatto per questo elemento per utilizzarlo con il comando driver.findElement(By.cssSelector(the-selector).click.
div[class='b-datalist__item__addr'] selettore non è abbastanza buono poiché devo cercare in base al [email protected] testo che non è un collegamento, quindi non posso usare il comando findElement(By.linkText()).

risposta

13

Css non consente la ricerca basata su testo. xpath è l'unica opzione disponibile.

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

Funziona, grazie! – Eliyahu

+0

Contento che ti aiuti – Saifur

+0

c'è un modo per aggiungere il nome della classe o qualsiasi parametro aggiuntivo al selettore xpath sopra? – Eliyahu

1

contains(node, substring) potrebbe risolvere il problema, ma si noti che se ci sono diversi elementi con contenuti di testo simili, ad esempio

predicato [contains(text(),'[email protected]')] corrisponderà a tutti loro

In questo caso è meglio usare starts-with(node, substring):

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

o recuperare elemento richiesto dalla esatto contenuto del testo:

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

Lo so. Grazie. – Eliyahu

Problemi correlati