2013-05-13 27 views
6

Sto cercando una funzione in javascript che fa clic su ogni elemento (collegamenti, pulsanti, ...) sulla mia pagina. Tutti gli elementi dovrebbero essere disabilitati per impostazione predefinita. Lo sto utilizzando per il mio ambiente di test in Selenium per verificare se tutti gli elementi sulla mia pagina sono disattivati.Seleziona tutti gli elementi in una pagina

+0

Cosa hai provato? –

+0

Stavo cercando di ottenere tutti i collegamenti con una funzione fornita dal selenio: selenium.getAllLinks() e ho provato con click(). Anche con getAllLinks() non riesco a ottenere alcun collegamento ... – John

risposta

7

In un primo momento, ottenere tutti gli elementi della pagina:

var elements = document.getElementsByTagName("*"); 

Ora che li ottenete, fare un mouse-evento, fare un ciclo e applicare l'evento su ogni elemento:

var clickEvent = document.createEvent ('MouseEvents'); 
clickEvent.initEvent ('click', true, true); 
for (var i=0; i < elements.length; i++) 
{  
    elements[i].dispatchEvent (clickEvent); 
} 
+0

Ehi! Grazie per la tua risposta veloce! Posso seguire il tuo codice e questo mi rende ragionevole. Sfortunatamente non sono in grado di ottenere alcun elemento da document.getElementsByTagName ("*"); – John

+0

Ho cambiato alcuni errori di battitura nel codice, forse funziona meglio ora? Assicuratevi inoltre di chiamare la funzione che verificherà i clic DOPO il caricamento del documento. Se lo metto nell'istruzione onLoad del corpo, il mio codice funziona perfettamente! – JasperV

+0

Quindi, se stai eseguendo il codice, il tuo browser fa clic su ogni link? Beh, in realtà, se i collegamenti sono attivi, il primo link che è stato cliccato dovrebbe reindirizzare alla pagina successiva. Se i collegamenti sono disabilitati, non dovrebbe accadere nulla. È così che mi aspetto che dovrebbe funzionare. Tuttavia, ora sono in grado di ottenere i collegamenti della pagina con il mio selenio.getAllLinks. Sebbene, clickEvent non sembra fare nulla. – John

Problemi correlati