2015-05-15 4 views
5

Ich mache Forschung und Entwicklung auf einigen unbekannten Websites Dritter, um Seiteninhalte mit Selen zu erhalten.Wie überprüft man mit Selenium WebDriver, wenn eine Website Ajax verwendet?

Wie soll ich erfahren, ob die Website Ajax basiert oder nicht Ajax basiert. Ich kenne keine Daten innerhalb der unbekannten Website zu überprüfen, obwohl mit ID oder Tag-Namen, wie sollte ich es überprüfen Ajax basiert oder nicht.

+0

Bitte lesen Sie http://stackoverflow.com/help/how-to-ask und geben Sie weitere Informationen darüber, was Sie versucht haben und was nicht funktioniert – Dude

+2

Eigentlich ist dies ein interessantes Problem. – alecxe

+1

Was meinst du genau mit "Ajax Based", wenn es einige Ajax Aufrufe gibt oder wenn es eine Simple Page Applikation ist? zum Beispiel (Angular JS) Das Problem ist, dass es viele Ansätze gibt, die Ajax verwenden. Es ist meiner Meinung nach das Haupthindernis. es gibt kein Muster .. –

Antwort

1

Wenn ich Sie wäre, würde ich einen Proxy einrichten und alle WebDriver Verkehr durch diese. In dem Proxy, für jede Anforderung würde ich die Request-Header analysieren und suchen nach Header

X-Requested-With = XMLHttpRequest 

Reference

Wenn Sie das, können Sie (mit ziemlich viel Vertrauen) sagen, dass Sie hatte Ajax aufgerufen . Es kann einige Eckfälle geben, die du vermisst, aber das sollte dir die meisten davon bringen.

Wie auch immer, Sie müssen berücksichtigen, dass Ajax-Aufrufe beim Laden der Seite möglicherweise nicht durchgeführt werden. Es kann eine Benutzerinteraktion erfordern, diese Aufrufe auszulösen.

Sie können versuchen, es mit Hilfe WebDrivers getPageSource() Methode zu bewältigen und eine Methode mit dem Ausgang für Muster wie $.get( und $.post( und $.ajax( und all die anderen suchen anwenden, die Sie mit oben kommen kann. Sie können außerdem interessiert sein an this answer über die Einrichtung des Proxy

Verwandte Themen