如何在Arquillian中实例化webdriver后调用@BeforeSuite

时间:2018-06-13 14:06:50

标签: java selenium selenium-webdriver jboss-arquillian arquillian-drone

我试图在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。

1 个答案:

答案 0 :(得分:0)

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

您不应该访问WebDriver中的BeforeSuite,因为到那时Arquillian尚未对其进行初始化。实际上它确实在那之后。因此,如果您想以编程方式覆盖任何arquillian.xml设置,这是个不错的选择。

如果您想使用登录等webdriver进行一些设置,您可以在测试本身或BeforeTest中执行此操作。 BeforeSuite不是发布网址的好地方