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

时间:2015-10-21 13:51:05

标签: java selenium selenium-webdriver webdriver testng

新用户警告

使用Java,webdriver和TestNG

我有两种不同的方法 1.为了启动司机 2.登录

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

有没有办法可以在与登录页面相关的测试之前执行一组方法调用,在所有其他测试之前执行一组不同的方法调用。 如果有其他方法可以实现,请告诉我。

如果此处需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

我会创建一个基类,我用@BeforeTest方法登录,只让testclasses继承它需要登录:

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
    }   
}

否则只需要没有基类(或其他基类)

public class TestLogin {

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

}

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