2

我对 play 2.1.1 和 HTMLUNIT 驱动程序的 Scala fluentlenium 测试有疑问。

错误是下一个:

[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 的默认浏览器版本,但我不会来更改此版本。

感谢您的帮助

4

1 回答 1

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)
      }
    }
  }
}

很遗憾,这没有更好的记录。

于 2013-05-09T06:36:46.700 回答