2016-11-24 1 views
-1

現在、Webページを自動化しようとしていますが、セレンWebDriverを使用しているjsとjQueryの実装はほとんどありません。私は、コードを実装してページの読み込みを完全に待つという記事についてはほとんど気づいていません。jQueryコンポーネントがwebDriverを使用して現在のWebページでアクティブであることを確認するにはどうすればよいですか?

ExpectedCondition<Boolean> jQueryLoad = new ExpectedCondition<Boolean>() { 
     @Override 
     public Boolean apply(WebDriver driver) { 
      try { 
       return ((Long) executeJavaScript("return jQuery.active") == 0); 
      } catch (Exception e) { 
       return true; 
      } 
     } 
    }; 

しかし、私は『executeJavaScript』の使用によってスロー「未定義の型エラー」を解決することができません。誰かが私に不足している図書館を案内することはできますか?またはこのコードを操作する方法。

+0

を** **コメントをささげる人たちに感謝しています。私は、私が直面したときに、StackOverflowに投稿された不明瞭な、または望ましくない投稿/コードを理解する努力をしました。 – ajesh

答えて

0

executeJavaScriptのような方法はありませんが、あなたのJavaScriptを実行するために使用できる方法はexecuteScriptですが、そのためにはあなたのwebdriverインスタンスをJavascriptExecutorにキャストする必要があります。以下は参照用のコードされています -

は、以下を使用してreturn文を置き換えます -

((long)((JavascriptExecutor)driver).executeScript("return jQuery.active") == 0); 
+0

これを指摘してくれてありがとう。しかし、この[リンク](http://stackoverflow.com/questions/10720325/selenium-webdriver-wait-for-complex-page-with-javascriptjs-to-load)を見てください。 DriverインスタンスをJavaScriptExecutorにキャストしてみました。 'return((long)js.executeScript( "return jQuery.active")== 0);'。 – ajesh

+0

セレン版ジャーをお使いですか? – Paras

+0

JDK 1.8で 'selenium-server-standalone-3.0.1'を使用しています。 – ajesh

関連する問題