2013-05-13 15 views
6

Ich bin auf der Suche nach einer Funktion in Javascript, die auf jedes Element (Links, Schaltflächen, ...) auf meiner Seite klickt. Alle Elemente sollten standardmäßig deaktiviert sein. Ich benutze dies für meine Testumgebung in Selenium, um zu überprüfen, ob alle Elemente auf meiner Seite deaktiviert sind.Wählen Sie alle Elemente auf einer Seite

+0

Was hast du versucht? –

+0

Ich habe versucht, alle Links mit einer Funktion aus Selen zu bekommen: selen.getAllLinks() und ich versuchte mit click(). Auch mit getAllLinks() kann ich keinen Link bekommen ... – John

Antwort

7

Zuerst alle Elemente auf Ihrer Seite erhalten:

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

Jetzt, wo Sie sie erhalten, eine Maus-Ereignis machen, eine Schleife bilden und das Ereignis auf jedes Element anwenden:

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

Hey! Danke für deine schnelle Antwort! Ich kann deinem Code folgen und es macht Sinn für mich. Leider kann ich kein Element aus document.getElementsByTagName ("*") entfernen; – John

+0

Ich habe einige Tippfehler im Code geändert, vielleicht funktioniert es jetzt besser? Stellen Sie außerdem sicher, dass Sie die Funktion aufrufen, mit der die Klicks NACH dem Laden des Dokuments getestet werden. Wenn ich es in die onLoad-Anweisung des Körpers einfüge, funktioniert mein Code gut! – JasperV

+0

Also, wenn Sie den Code ausführen, klickt Ihr Browser auf jeden Link? Nun, wenn die Links aktiv sind, sollte der erste Link, auf den Sie geklickt haben, Sie zur nächsten Seite weiterleiten. Wenn die Links deaktiviert sind, sollte nichts passieren. So erwarte ich, dass es funktionieren sollte. Jetzt kann ich jedoch alle Links der Seite mit meinen selen.getAllLinks verbinden. Das ClickEvent scheint jedoch nichts zu tun. – John

Verwandte Themen