2015-05-15 9 views
5

Zajmuję się badaniami i rozwojem na kilku nieznanych stronach internetowych stron trzecich, aby uzyskać zawartość strony za pomocą selenu.Jak sprawdzić w Selenium WebDriver, czy strona korzysta z Ajax?

Jak mogę się dowiedzieć, czy witryna jest oparta na Ajax lub nie-Ajax. Nie znam żadnych danych w nieznanej witrynie, aby sprawdzić, czy używają identyfikatora lub nazwy tagu, więc jak mam to sprawdzić w oparciu o Ajax, czy nie.

+0

przeczytaj http://stackoverflow.com/help/how-to-ask i podaj więcej informacji o tym, co wypróbowałeś i co nie działało. – Dude

+2

W rzeczywistości jest to interesujący problem. – alecxe

+1

Co dokładnie masz na myśli z "Ajax Based", jeśli istnieje kilka wywołań ajaxowych lub czy jest to prosta aplikacja na stronie? na przykład (Angular JS) Problem polega na tym, że istnieje wiele podejść przy użyciu ajax. jest to według mnie główna przeszkoda. nie ma wzoru .. –

Odpowiedz

1

Gdybym był tobą, ustawiłbym proxy i poprowadziłbym cały ruch WebDriver. W proxy dla każdego żądania chciałbym analizować nagłówków żądania i poszukać nagłówka

X-Requested-With = XMLHttpRequest 

Reference

Jeśli masz, że można (z dozą zaufania) powiedzieć, że trzeba było Ajax wywoływany . Może być kilka przypadków narożnych, za którymi tęsknisz, ale to powinno ci dać większość z nich.

W każdym razie, należy wziąć pod uwagę, że wywołania Ajax nie mogą być wykonywane po załadowaniu strony, może to wymagać interakcji użytkownika, aby uruchomić te połączenia.

Można próbują rozwiązać go za pomocą WebDrivers getPageSource() metody i zastosować jakąś metodę wyjścia szuka wzorców jak $.get( i $.post( i $.ajax( i wszystkich innych te, które można wymyślić.

Możesz również być zainteresowany this answer w sprawie konfiguracji proxy.