HTMLUNIT驱动程序:尚未提供完成此操作所需的数据

时间:2013-04-13 13:37:35

标签: selenium playframework-2.0 htmlunit

我对Play 2.1.1和HTMLUNIT驱动程序的Scala fluent上的测试存在问题。

错误是下一个:

[error] 2013-04-13 15:15:40,548 - c.g.h.j.StrictErrorReporter - runtimeError: message=[The data necessary to complete this operation is not yet available.] sourceName=[http://localhost:3333/assets/libs/jquery-1.9.1.js] line=[928] lineSource=[null] lineOffset=[0]

与jquery 1.7.1相同。 使用FIREFOX驱动程序(计算机上的firefox 20)进行的测试没问题,版本依赖于fluentlenium-festassert 0.7.8

我认为这是由于HTMLUNIT的默认浏览器版本,但我不会更改此版本。

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

好的,我找到了解决方案。你需要做两件事。更改代码 - 示例似乎不起作用,但您也需要安装selenium驱动程序,否则它不会安装Web浏览器的插件。为此,请将此添加到您的构建配置中:

      "org.seleniumhq.selenium" % "selenium-java" % "2.31.0"

根据此处的讨论:https://groups.google.com/forum/?fromgroups=#!searchin/play-framework/browser$20tests/play-framework/AlJwpRfyXv0/Ry8Jsxj8mCcJ

然后,像这样的一些代码将起作用:

package Selenium

import org.specs2.mutable._
import play.api.test._
import play.api.test.Helpers._


class SeleniumTest extends Specification {

  val app = FakeApplication()
  "Application" should {


    "works from within a browser" in new WithBrowser(webDriver = Helpers.FIREFOX, app = app) {

      running(FakeApplication()) {
        browser.goTo("/")
        //browser.$("#title").getTexts().get(0) must equalTo("Welcome")
        browser.waitUntil[Boolean]{
          browser.pageSource contains ("Welcome")
        }


        //info(browser.$("#title").toString)
      }
    }
  }
}

令人遗憾的是,这没有更好的记录。