2014-02-21 67 views
8

我不是硒的專家,但我相信我可能在嘗試使用jQuery v2.0.2時發現了一個錯誤。當我使用jQuery V2.0.2跟我玩框架2.2.1應用程序,而不是捆綁jQuery的v.1.9.0,我收到以下錯誤,當我運行「播放測試」:使用jQuery v2.0.2和Play Framework運行Selenium測試時出錯

[error] Driver info: driver.version: HtmlUnitDriver 
[error]  at org.openqa.selenium.htmlunit.HtmlUnitDriver.get(HtmlUnitDriver.java:367) 
[error]  at org.openqa.selenium.htmlunit.HtmlUnitDriver.get(HtmlUnitDriver.java:346) 
[error]  at org.fluentlenium.core.Fluent.goTo(Fluent.java:228) 
[error]  at IntegrationTest$1.invoke(IntegrationTest.java:22) 
[error]  at IntegrationTest$1.invoke(IntegrationTest.java:20) 
[error]  at play.test.Helpers.running(Helpers.java:433) 
[error]  at IntegrationTest.test(IntegrationTest.java:20) 
[error]  ... 
[error] Caused by: com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot find function addEventListener in object [object HTMLDocument]. (http://localhost:3333/assets/javascripts/jquery-2.0.2.min.js#4) 

我能通過使用「play new tmp」創建一個全新的Play Java項目來重新創建此錯誤。創建項目後,我能夠「玩測試」就好了。然後,我將jquery-2.0.2.min.js複製到public/javascripts文件夾中。然後,我更新了main.scala.html文件以使用jquery-2.0.2.min.js而不是綁定的jquery-1.9.0.min.js。這足以通過運行「遊戲測試」再次導致這個確切的錯誤。

我也試過使用FIREFOX WebDriver助手類,但再次沒有運氣。

深入瞭解我們如何才能讓Selenium/Fluentlenium與2.0.2版本的jQuery一起工作,將不勝感激:)謝謝!

+0

同樣的問題。如果有什麼新東西,請告訴我們:) –

+0

請參閱sourceforge.net/p/htmlunit/bugs/1615/#50f4 - 問題是htmlunit默認爲IE8,其中jquery 2不支持 – nafg

回答

3

根據Selenium Wiki,HtmlUnitDriver模擬(真正的)瀏覽器的JS行爲。您可以通過更改其模擬的瀏覽器來更改行爲。這可能有助於解決您的問題。正如他們所說的,HtmlUnitBrowser的JS(和DOM)實現並不完整,並且像您遇到的那樣可能會發生錯誤/問題。

如果可能,嘗試使用其他瀏覽器(Firefox或Chrome?)並在瀏覽器中打開它時檢查網站是否正常工作。打開JavaScript控制檯(如果使用Firefox,則爲Firebug),然後仔細檢查您的jQuery版本是否正常工作。

0

此錯誤是在這裏討論:https://github.com/playframework/playframework/issues/2607

它被標記關閉都發揮和的的HtmlUnit當前版本,但到目前爲止,我還沒有能夠得到的東西的工作,而不降級到1.x的的JQuery

+1

雖然此鏈接可能會回答問題,最好在這裏包含答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 –

+1

我包括鏈接只是爲了支持我的簡潔和我看到的情況的要點摘要:1)這是一個已知的錯誤。 2)在兩個系統中都被標記爲關閉。 3)如果沒有我指定的解決方法,我仍然無法工作。你可以繼續並刪除鏈接,我的觀點仍然會保持良好。 – spicemix

+0

是什麼意思是**在你的答案**中發佈相關部分,如果鏈接死亡,那麼答案將變得毫無用處。 –

相關問題