2

如何在 Chrome 等不同浏览器中使用 Graphene 2?(默认的 htmlUnit 不适合我。)

在 Arquillian 容器中运行 Wildfly 8.1 服务器,我想使用 Drone + Graphene 来执行实际测试。

@Drone
WebDriverdriver;

...

@RunAsClient
@Test
@InSequence(1)
public void basicHomepageTest() {

    // try to get the homepage
    driver.get("http://localhost:8080/superapp");

    // read title and source
    Assert.assertEquals("My Super App", driver.getTitle());

    // read content
    System.out.println("Page source -----");
    System.out.println(driver.getPageSource());
}

我尝试将其添加到 arquillian.xml 配置中(没有运气):

<extension qualifier="webdriver">
    <property name="browser">chrome</property>
</extension>

结束于:

java.lang.RuntimeException: Unable to instantiate Drone via org.openqa.selenium.chrome.ChromeDriver(Capabilities): java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/se
    lenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
    Caused by: java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleap
    is.com/index.html

我真的需要以某种方式将 Chrome 二进制文件嵌入到我的项目中吗?

4

2 回答 2

3

您不必将其本身嵌入到您的项目中,但 Chrome 的驱动程序并未随浏览器本身提供。chromeDriverBinary您必须下载它并使用配置文件将 Graphene 指向它的位置。

于 2016-08-11T07:59:15.493 回答
2

只是为了补充巴托兹的回答,这就是我所做的:

1)在这里为我的操作系统下载了 chromedriver 二进制文件

2) 将二进制路径添加到 arquillian.xml

<extension qualifier="webdriver">
    <property name="browser">chrome</property>
    <property name="chromeDriverBinary">webdriver-bin/chrome/chromedriver.exe</property>
</extension>
于 2016-08-16T13:20:54.567 回答