首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium :需要解决一个与@BeforeTest (TestNG)相关的非常具体的问题

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

Stack Overflow用户
提问于 2015-10-21 13:51:05
回答 1查看 118关注 0票数 2

新用户警报

使用Java、webdriver和TestNG

我有两个独立的方法1.启动驱动程序2.登录

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-21 14:18:28

我将创建一个基类,在其中我将@BeforeTest方法与登录放在一起,并且只允许testclasses继承它,这将需要登录:

代码语言:javascript
复制
public abstract class TestBaseForLogin{

    @BeforeTest
    public void loginBeforeEachTest() {
        // do the login
    }
}

现在,如果您想要在每次测试之前都需要登录的测试池,那么只需从baseclass继承即可。

代码语言:javascript
复制
public class TestThatNeedLogin extends TestBaseForLogin{

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

否则,就去吧,不带基佬(或另一个贱人)。

代码语言:javascript
复制
public class TestLogin {

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

}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33261176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档