0

我正在尝试在 Arquillian 中实例化 webdriver 后使用 @BeforeSuite

我只是在下面举一个例子

@RunAsClient
public class GoogleTest extends Arquillian {

    @Drone
    private WebDriver driver;

    @ArquillianResource
    private URL contextRoot;

    @Page
    Google googlePage;

    @BeforeSuite
    public void init() {
        driver.get(contextRoot.toString());
    }

    @Test
    public void googleSearchTest() {
        System.out.println(contextRoot);
        googlePage.searchFor("Arquillian Graphene");
    }
}

但是由于驱动程序没有实例化,它得到了空指针异常。所以我的问题是如何在 Arquillian 定义 @BeforeSuite 之后调用我的 @BeforeSuite。

我不想做 webdriver 实例化部分,我更喜欢它应该由 Arquillian @Drone 注解处理,之后我将执行我自己的 @BeforeSuite。

4

1 回答 1

0

WebDriver 生命周期由 Arquillian Drone 控制。您不必实例化它!

您不应该访问WebDriverBeforeSuite因为到那时 Arquillian 还没有初始化它。其实在那之后确实如此。因此,如果您想以arquillian.xml编程方式覆盖任何设置,这是一个好地方。

如果您想使用 webdriver 进行一些设置,例如登录等,您可以在测试本身或BeforeTest. BeforeSuite不是启动 URL 的好地方

于 2018-06-13T21:30:57.277 回答