Krótka odpowiedź? Nic.
Długa odpowiedź:
Aby dowiedzieć się, jakie elementy wywołać skrypty, to trzeba wiedzieć, co Javascript został wykonany, że przywiązuje słuchaczy do każdego elementu. Aby to zrobić, musisz mieć możliwość uruchomienia Javascript. WATIR i Nokogiri nie uruchamiają Javascript samodzielnie. WATIR używa przeglądarki, która wewnętrznie wykonuje JavaScript. Watir-webdriver używa emulatora przeglądarki opartego na Javie (Selenium), który ma również executor JavaScript, który wykona javascript strony. Nokogiri w ogóle nie uruchamia JavaScript.
Musisz więc wstrzyknąć trochę własnego skryptu JavaScript, aby "odczytać", jakie słuchacze są dołączone do konkretnego elementu. Nie jest to łatwe, ponieważ nie masz wpływu na środowisko JavaScript. Ale,, nawet jeśli znalazłeś sposób, aby to zrobić, okazuje się, że nie ma standardowej metody zapewnionej przez interfejs DOM W3C, aby dowiedzieć się, jakie detektory zdarzeń są dołączone do konkretnego elementu. Poszczególne biblioteki JavaScript takie jak JQuery buforują swoich odbiorców, ale każdy robi to na swój własny sposób.
Innymi słowy, staje się to bardzo skomplikowane.
Możliwym rozwiązaniem
Poniżej wszystko domysły, ale jeśli naprawdę chciał kontynuować uzyskanie tej informacji z powrotem w Ruby ziemi, to daje coś do wypróbowania.
Po pierwsze, potrzebujesz sposobu na wprowadzenie JS do swoich stron i uzyskanie wyniku. Może to być możliwe za pomocą watir-webdrivera, ponieważ Selenium ma do tego haki. Zobacz sam koniec instrukcji this page, aby uzyskać instrukcje dotyczące wstrzykiwania JS i zwracania wyniku z powrotem do osoby dzwoniącej w Selenium. Inną opcją jest PhantomJS, która jest bezgłową przeglądarką z interfejsem JS API.
Po drugie, musisz znaleźć bibliotekę JavaScript, która zrozumie, w jaki sposób każda z popularnych bibliotek JS buforuje swoich odbiorców i może zbierać te informacje. W tym celu możesz spróbować Visual Event 2.
Nadal będziesz musiał je łączyć, co wymagałoby trochę hakerów JS. Powodzenia.
Masz rację, kierując mnie do wizualnego wydarzenia 2. Zastanowiłem się już wcześniej, ale z powodu pewnych nieporozumień, które miałem, początkowo go odrzuciłem.Teraz szukam, jak wyodrębnić informacje z Visual Event 2, do Rubiego, jak wykazano w następującym [pytanie] (http://stackoverflow.com/questions/16577725/extracting-visual-event-2-output-into-script) . Mam nadzieję, że wkrótce będę mógł odpowiedzieć na to pytanie! – Seanny123
Poprzez ingerencję w kod źródłowy Visual Event 2, a następnie wstrzyknięcie go za pomocą Selenium-Webdriver, udało mi się zidentyfikować element powiązany ze zdarzeniem JavaScript i pobrać z niego informacje. Dziękuję, że skierowałeś mnie we właściwym kierunku, Mark. – Seanny123
Gratulacje! Cieszę się, że to działało. –