Java 如何在Arquillian中实例化webdriver后调用@BeforeSuite
我试图在Arquillian中实例化webdriver之后使用@BeforeSuite 下面我只举一个例子Java 如何在Arquillian中实例化webdriver后调用@BeforeSuite,java,selenium,selenium-webdriver,jboss-arquillian,arquillian-drone,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; @Be
@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。webdriver生命周期由Arquillian Drone控制。您不必实例化它 您不应该访问
BeforeSuite
中的WebDriver
,因为此时Arquillian不会初始化它。事实上,在那之后就有了。因此,如果您想以编程方式覆盖任何arquillian.xml
设置,这是一个好地方
如果您想使用webdriver(如登录等)进行一些设置,您可以在测试本身中或在测试之前进行设置
BeforeSuite
不是启动URL的好地方@BeforeSuite
根据其自身的定义,注释是测试套件中首先要执行的事情。如果您需要为该方法实例化驱动程序,那么您需要在该方法中实例化驱动程序。感谢您的回复。是的,我知道我已经这样做了,但我尝试以这种方式实施,所以我问这个问题。我试图打破Arquillian的限制。我需要使用before方法