如何在 Arquillian 中实例化 Web 驱动程序后调用@BeforeSuite



我正在尝试在 Arquillian 中实例化网络驱动程序后使用@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 实例化部分,我希望它应该由 Arquiillian @Drone注释处理,之后我将执行我自己的@BeforeSuite。

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

您不应该在BeforeSuite中访问WebDriver,因为那时Arquillian不会初始化它。实际上在那之后确实如此。因此,如果要以编程方式覆盖任何arquillian.xml设置,这是一个好地方。

如果您想使用登录等网络驱动程序进行一些设置,您可以在测试本身或BeforeTest中执行此操作。BeforeSuite不是启动 URL 的好地方

最新更新