2014-02-21 64 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

是什么意思是**在你的答案**中发布相关部分,如果链接死亡,那么答案将变得毫无用处。 –

相关问题