我不是硒专家,但我相信在尝试使用jQuery v2.0.2时我可能发现了一个错误。当我在我的Play Framework 2.2.1应用程序中使用jQuery v2.0.2而不是捆绑的jQuery v.1.9.0时,运行“play test”时出现以下错误:
[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。这足以通过运行“play test”再次导致这个确切的错误。
我也尝试过使用FIREFOX WebDriver帮助程序类,但是没有运气。
我们非常感谢有关如何让Selenium / Fluentlenium与2.0版jQuery一起工作的任何见解:)谢谢!
答案 0 :(得分:3)
根据Selenium Wiki,HtmlUnitDriver模拟(真实)浏览器的JS行为。您可以通过更改其模拟的浏览器来更改行为。这可能有助于解决您的问题。正如他们所说的那样,HtmlUnitBrowser的JS(和DOM)实现并不完整,并且可能会发生错误/问题,就像你遇到的那样。
如果可能,请尝试使用其他浏览器(Firefox或Chrome?)并在浏览器中打开网站时检查网站是否正常工作。打开javascript控制台(如果你使用Firefox,则打开Firebug)并仔细检查你的jQuery版本是否正常工作。
答案 1 :(得分:0)
此错误在此处讨论:https://github.com/playframework/playframework/issues/2607
对于Play和HtmlUnit的当前版本,它被标记为已关闭,但到目前为止,我没有能够在不降级到JQuery 1.x的情况下工作。