Java Selenium Webdriver:需要解决与@BeforeTest(TestNG)相关的一个非常具体的问题

Java Selenium Webdriver:需要解决与@BeforeTest(TestNG)相关的一个非常具体的问题,java,selenium,selenium-webdriver,webdriver,testng,Java,Selenium,Selenium Webdriver,Webdriver,Testng,新用户警报 使用Java、webdriver和TestNG 我有两种不同的方法 1.用于启动驱动程序 2.登录 我在@BeforeTest中调用了驱动程序启动方法,这也将启动应用程序登录页面。 我还想在@BeforeTest中调用“login”方法(因为几乎所有的测试都需要这个方法),但问题是我对这个登录页面也有4-5个测试(比如测试版本、版权、忘记密码链接)。因此,对于这些测试,不需要登录(或者更确切地说,不应该进行登录) 是否有一种方法可以在与登录页面相关的测试之前执行一组方法调用,并在所有

新用户警报

使用Java、webdriver和TestNG

我有两种不同的方法 1.用于启动驱动程序 2.登录

我在@BeforeTest中调用了驱动程序启动方法,这也将启动应用程序登录页面。 我还想在@BeforeTest中调用“login”方法(因为几乎所有的测试都需要这个方法),但问题是我对这个登录页面也有4-5个测试(比如测试版本、版权、忘记密码链接)。因此,对于这些测试,不需要登录(或者更确切地说,不应该进行登录)

是否有一种方法可以在与登录页面相关的测试之前执行一组方法调用,并在所有其他测试之前执行另一组方法调用。 请让我知道是否有其他方法可以实现这一点


如果这里需要更多信息,请告诉我。

我会创建一个基类,将@BeforeTest方法与login放在一起,并只让testclass继承需要登录的方法:

public abstract class TestBaseForLogin{

    @BeforeTest
    public void loginBeforeEachTest() {
        // do the login
    }
}
现在,如果您想要在每个测试之前汇集需要登录的测试,那么只需从基类继承即可

public class TestThatNeedLogin extends TestBaseForLogin{

    @BeforeTest
    public void beforeEachTest() {
        // do whatever you need before the test
    }   
}
否则,只需不使用基类(或其他基类)


您继承的类将首先执行基类的@BeforeTest,然后才执行它们自己的@BeforeTest标记方法。

!很乐意帮忙
public class TestLogin {

    @BeforeTest
    public void beforeEachTest() {
        // do whatever you need before the test
    } 

}