Ho un'applicazione GWT per la quale sto cercando di scrivere alcuni test utilizzando Selenium.Come seleziono solo elementi visibili usando XPath?
Sto usando XPath per identificare gli elementi nella pagina per i test. L'utilizzo di id
non funziona poiché i valori di id
vengono generati automaticamente da GWT e possono essere modificati. Le cose cominciarono ad andare bene quando ho capito che potevo trovare pulsanti per le loro etichette come segue:
//button[.='OK']
Tuttavia, quando ho iniziato a correre più test ho iniziato ad avere problemi. Mi sono reso conto che il problema erano tutte le diverse "pagine" dell'app GWT una volta generate dal Javascript rimangono nel codice HTML in elementi nascosti <div>
. Ciò significava che i miei test al selenio a volte facevano clic sui pulsanti nascosti anziché sul pulsante visibile nella vista corrente.
Esaminando il codice HTML con Firebug, sembra che GWT nasconde i <div>
elementi con l'aggiunta di display: none
al loro attributo style
. Questo significa che posso trovare tutti i pulsanti OK nascosti come segue:
//div[contains(@style,'display: none')]//button[.='OK']
Ciò trovare tutti i pulsanti OK nascosti, cioè i pulsanti che hanno un antenato <div>
che è nascosto da avere display: none
nel style
.
La mia domanda è: come utilizzare XPath per trovare solo i pulsanti OK visibili? Come faccio a trovare i pulsanti che non hanno antenati elementi <div>
con display: none
nello style
?
Questo è tutto. Grazie molto. –
L'ultimo non funziona se c'è un'altra div nella dom-tree che non è nascosta:
– Fortega@Fortega e si dice nel testo attorno ad esso –