2016-03-27 7 views
1

PhantomJSDriverを使用してJavaとSeleniumでページを読み込み、解析しています。ここまでは順調ですね。 30秒ごとにページがロードされると、このロードされたページのインクルードされたスクリプトの1つからAjaxコールが実行されます。Selenium APIを使用して読み込まれたページからAjaxリクエストを無効にする方法

私の質問:特定のまたは非同期のJavascriptリクエストを少なくとも一時的に実行するのを止める方法はありますか?

私は、この30秒のWebElements前ページの「パース」で行わ古くなると私は再び開始する必要があるわけではない場合、私が午前問題がある

...

+0

私は私ができるように、代わりにあなたが古い要素例外を処理しようとしない理由ページにAjaxリクエストを無効にするのコードの一部を共有してくださいだと思います –

+0

より洗練された回避策がありますが、この場合、/ as /が発生した場合に例外をキャッチしてルックアップを再実行するのが最も簡単な方法です。 –

答えて

0

それはパースに30秒以上かかる場合あなたはおそらくそれを間違った方法でやっているでしょう。あなたはまだ、すべてのAjax呼び出しを無効にする場合 はとにかく:

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