Cucumber Selenium Java:在测试用例之间保持浏览器打开

我目前正在使用Java中的Cucumber和Selenium WebDriver来测试Web应用程序.
我对浏览器关闭并在每个测试用例之间重新打开这一事实感到不满意.

首先,它很慢,而且对我来说没有意义.

我想要做的是在每次测试之间注销应用程序并保持浏览器打开.

我认为这条线可以完成工作,但它不能按预期工作:

driver.navigate().to("http://myurl.url");

代替 :

driver.get("http://myurl.url");

它会打开一个新的浏览器.我理解为什么会这样做,但我想附加到我之前的浏览器会话中.

解决方法:

我发现了一种在测试之间保持浏览器畅通的方法.我使用了带有picocontainer的Singleton设计模式.
我在这个类中声明我的浏览器是静态的.

public class Drivers {
    private static boolean initialized = false;
    private static WebDriver driver;

    @Before
    public void initialize(){
        if (!initialized){
            initialized = true;
            driver = new FirefoxDriver();
            driver.get("http://myurl.url");
        }
    }
    public static WebDriver getDriver(){
        return driver;
    }   
}

在每个StepDefinitions类中,我都有一个实例化我的Singleton的构造函数.

public class DashboardSteps extends SuperSteps {
    Drivers context;

    @After
    public void close(Scenario scenario) {
        super.tearDown(scenario);
        loginPage = homePage.clickLogout();
        loginPage.waitPageLoaded();
    }

    public DashboardSteps(Drivers context) {
        super(context);
    }

SuperSteps类:

public class SuperSteps {
    protected Drivers context;

    public SuperSteps(Drivers context){
        this.context = context;
    }

如您所见,我在每次测试后返回logIn页面,这样我就可以独立运行每个测试.

相关文章

转载地址:https://www.cnblogs.com/mini-monkey/p/12104821...
web自动化测试过程中页面截图相对比较简单,可以直接使用sel...
目录前言一、Selenium简介二、浏览器驱动1.浏览器驱动参考2....
一、iframe的含义:iframe是HTML中框架的一种形式,在对界面...
转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.to...
'''##**认识selenium**​**下载:pipinstall...