2010-02-02 10 views
6

Ho bisogno di trovare un <div> con determinati contenuti e click da selenio, come così:Selenio: come trovare div con contenuti specifici?

 
<tr> 
    <td>clickAndWait</td> 
    <td>//div[@class='gwt-Label' ***WITH CONTENT='Logout'***]</td> 
    <td>5000</td> 
</tr> 

C'è qualche modo per fare questo? Non voglio usare un assoluto xpath.

risposta

7

provare questo:

//div[@class='gwt-Label' and contains(., 'Logout')] 
+0

suona bene, ma non posso farlo lavoro. Ho cercato documentazione, ma non ne ho trovato; Avete un link? –

+0

http://www.w3.org/TR/xpath/#function-contains – krosenvold

+0

Oh. È necessario eliminare le virgolette singole intorno a ".". Modificato – krosenvold

8

Si potrebbe anche usare localizzatori CSS:

<div class="gwt-Label">This FindMe DIV</div> 

potrebbe essere individuato utilizzando:

css=.gwt-Label:contains('FindMe') 
+0

Il selenio identifica il localizzatore, trova il div, ma il clic non arriva mai! Qualche idea? –

+0

È possibile che il DIV non sia l'elemento che risponde al clic. C'è un elemento genitore/figlio che potrebbe essere più adatto? A volte ci sono anche problemi con 'clic' e puoi provare i comandi' mouseDown', 'mouseUp'. –

1

Forse il vostro XPath semplicemente non è abbastanza facendo quello tu pensi. Potrebbe essere necessario utilizzare la funzione string() per concatenare tutto il testo in un blocco.

Per esempio, in testplan (utilizzando Selenio come backend) si farebbe qualcosa di simile:

Click //div[@class='gwt-Label'][contains(string(),'Logout')] 

Si noti l'uso di corda()

Problemi correlati