我正在尝试在 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 的好地方