如何在 ChromeDriver 中使用 Arquillian Graphene 2

How to use Arquillian Graphene 2 with ChromeDriver

如何在 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 二进制文件以某种方式嵌入到我的项目中吗?

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

为了补充 bartozs 的回答,我是这样做的:

1) 为我的 OS here

下载了 chromedriver 二进制文件

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

<extension qualifier="webdriver">
    <property name="browser">chrome</property>
    <property name="chromeDriverBinary">webdriver-bin/chrome/chromedriver.exe</property>
</extension>