2013-05-13 18 views
6

Szukam funkcji w javascript, która klika na każdym elemencie (linki, przyciski, ...) na mojej stronie. Wszystkie elementy powinny być domyślnie wyłączone. Używam tego dla mojego środowiska testowego w Selenium, aby sprawdzić, czy wszystkie elementy na mojej stronie są dezaktywowane.Wybierz wszystkie elementy na stronie

+0

Co próbowałeś? –

+0

Próbowałem uzyskać wszystkie łącza z funkcją dostarczoną z selenu: selenium.getAllLinks() i próbowałem za pomocą click(). Również z getAllLinks() nie jestem w stanie uzyskać żadnego łącza ... – John

Odpowiedz

7

Początkowo uzyskać wszystkie elementy na swojej stronie:

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

Teraz, gdy je dostać, zrobić myszy zdarzenie, zrobić pętlę i zastosować zdarzenie w każdym elemencie:

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

Hej! Dziękuję za szybką odpowiedź! Mogę podążać za twoim kodem i to mi się wydaje. Niestety nie mogę usunąć żadnego elementu z document.getElementsByTagName ("*"); – John

+0

Zmieniłem niektóre literówki w kodzie, może teraz działa lepiej? Upewnij się też, że wywoływana jest funkcja, która przetestuje kliknięcia PO załadowaniu dokumentu. Jeśli umieściłem to w oświadczeniu OnLoad na temat ciała, mój kod działa poprawnie! – JasperV

+0

Więc jeśli wykonujesz kod, przeglądarka klika każdy link? Właściwie, jeśli linki są aktywne, pierwszy kliknięty link powinien przekierować cię na następną stronę. Jeśli linki są wyłączone, nic nie powinno się stać. Tak się spodziewam, że to powinno zadziałać. Jednak teraz jestem w stanie uzyskać wszystkie linki strony z moim selenem.getAllLinks. Mimo, że clickEvent nie robi nic. – John

Powiązane problemy