2016-11-24 28 views
-1

我目前正試圖自動化網頁包含幾個js和jQuery實現使用selenium WebDriver。我已經注意到幾篇關於實現代碼完全等待頁面加載的文章。如何識別使用webDriver的當前網頁上的任何jQuery組件?

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,有一個方法executeScript,你可以用它來執行你的JavaScript,但對於你有你的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

你使用哪個硒版本的jar? – Paras

+0

我在JDK 1.8中使用'selenium-server-standalone-3.0.1'。 – ajesh

相關問題