使用jQuery v2.0.2和Play Framework运行Selenium Test时出错

oss*_*sys 8 javascript jquery selenium playframework playframework-2.2

我不是selenium的专家,但我相信在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

通过使用"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将非常感谢:)谢谢!

Pea*_*nut 3

根据Selenium Wiki,HtmlUnitDriver 模拟(真实)浏览器的 JS 行为。您可以通过更改它模拟的浏览器来更改行为。这可能有助于解决您的问题。正如他们所说,HtmlUnitBrowser 的 JS(和 DOM)实现并不完整,并且可能会发生像您遇到的那样的错误/问题。

如果可能,请尝试使用其他浏览器(Firefox 或 Chrome?),并检查在浏览器中打开网站时网站是否正常工作。打开 javascript 控制台(如果您使用 Firefox,则打开 Firebug)并仔细检查您的 jQuery 版本是否正常工作。