0

我正在尝试使用 Fluentlenium 测试 Play 2 应用程序。

这是其中一个测试用例的代码:

import org.junit.*;

import play.mvc.*;
import play.test.*;
import play.libs.F.*;

import static play.test.Helpers.*;
import static org.fest.assertions.Assertions.*;

import static org.fluentlenium.core.filter.FilterConstructor.*;
public class IntegrationTest {

/**
 * Verify if the Login Page is rendered correctly
 */
@Test
public void LoginPage() {
    running(testServer(3333, fakeApplication(inMemoryDatabase())), HTMLUNIT_, new Callback<TestBrowser>() {
        public void invoke(TestBrowser browser) {
            browser.goTo("http://localhost:3333");
            assertThat(browser.pageSource()).contains("Login");
        }
    });
}

当我使用 HTMLUNIT 执行此操作时,它可以正常工作,但是有些页面包含复杂的 javascript,因此 HTMLUNIT 在某些测试用例中中断。

当我用 FIREFOX 替换 HTMLUNIT 时,它会启动 Firefox,但不会在浏览器上执行任何操作。

当我尝试使用 CHROME 时,它给了我一个“找不到符号”的编译错误。我尝试下载 ChromeWebDriver 并将其复制到“/usr/bin”文件夹中,但仍然无法正常工作。

我不知道问题可能出在哪里。

4

2 回答 2

-1

您需要Chrome 驱动程序库,并且可能需要明确告诉您的应用程序在哪里可以找到它,例如:

System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/extra/chromedriver")
于 2014-05-14T13:02:11.743 回答
-1

我在 Firefox 启动时遇到了同样的问题,但什么也没发生。Play Framework 中包含的最新 Fluentlenium 版本与最新 Firefox 版本中的更改不同步。

我需要做的是升级 Fluentlenium(目前为 0.10.13 版本)

// For Scala, add the latest fluentlenium dependency in build.sbt
libraryDependencies ++= Seq(
  <other dependencies of the project>
  "org.fluentlenium" % "fluentlenium-core" % "0.10.3" % "test"
)

同时降级 Firefox(28.0 似乎适用于 Fluentlenium 0.10.3)

sudo apt-get purge firefox
sudo apt-get install firefox=28.0+build2-0ubuntu2
于 2015-03-22T18:11:23.177 回答