2016-03-27 3 views
1

Ich lese und analysiere eine Seite mit Java und Selen, mit dem PhantomJSDriver. So weit, ist es gut. Wenn die Seite alle 30 Sekunden geladen wird, wird ein Ajax-Aufruf von einem der enthaltenen Skripte dieser geladenen Seite ausgeführt.So deaktivieren Sie Ajax-Anfragen von einer geladenen Seite mit Selenium API

Meine Frage: Gibt es eine Möglichkeit zu stoppen, bestimmte oder alle asynchronen Javascript-Anfragen auszuführen, zumindest vielleicht vorübergehend?

Das Problem, das ich habe, ist, wenn ich nicht mit „Parsen“ der Seite vor dieser 30 Sekunden WebElements fertig bin veralten, und ich muß wieder von vorne anfangen ...

+0

ich denke, statt Ajax-Anfragen auf der Seite zu deaktivieren, warum Sie nicht versuchen, veraltete Element Ausnahme behandeln Sie bitte das Stück Code teilen, so dass ich Helfen Sie dabei, das zu tun –

+0

Es gibt klügere Problemumgehungen, aber in diesem Fall wäre die einfachste Sache, die Ausnahmen zu fangen, wenn/wie/wenn sie passieren, und die Suche erneut durchzuführen. –

Antwort

0

Wenn es mehr als 30 Sekunden dauert, zu analysieren die Seite, dann machst du es wahrscheinlich falsch. Wie auch immer, wenn Sie noch deaktivieren möchten alle Ajax-Aufrufe:

((JavascriptExecutor)driver).executeScript(
    "var p=window.XMLHttpRequest.prototype; p.open=p.send=p.setRequestHeader=function(){};"); 
Verwandte Themen