Java 如何在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

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

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

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


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

@BeforeSuite
根据其自身的定义,注释是测试套件中首先要执行的事情。如果您需要为该方法实例化驱动程序,那么您需要在该方法中实例化驱动程序。感谢您的回复。是的,我知道我已经这样做了,但我尝试以这种方式实施,所以我问这个问题。我试图打破Arquillian的限制。我需要使用before方法