使用cucumber场景大纲和webdriver io时,是否有关闭和重新打开浏览器的方法

使用cucumber场景大纲和webdriver io时,是否有关闭和重新打开浏览器的方法,cucumber,webdriver-io,Cucumber,Webdriver Io,我正在使用v5的web驱动程序io和cucumber框架。我有多个例子的场景大纲。我想关闭浏览器,然后在示例之间重新打开它,这样我就有了一个干净的网页。但是我找不到一个方法来做这件事。我肯定我见过这方面的任何东西,但我找不到 我查阅了webdriverio文档,最后发现的是2016年,当时说这是不可能的,但有一个关于实施的讨论,但我找不到更多细节。你在找这个: browser.reloadSession() 您在找这个吗: browser.reloadSession() 您可以使用钩子,我在下面

我正在使用v5的web驱动程序io和cucumber框架。我有多个例子的场景大纲。我想关闭浏览器,然后在示例之间重新打开它,这样我就有了一个干净的网页。但是我找不到一个方法来做这件事。我肯定我见过这方面的任何东西,但我找不到


我查阅了webdriverio文档,最后发现的是2016年,当时说这是不可能的,但有一个关于实施的讨论,但我找不到更多细节。

你在找这个:

browser.reloadSession()


您在找这个吗:

browser.reloadSession()


您可以使用钩子,我在下面分享一个示例

UiHooks.java:

import cucumber.api.Scenario;
import cucumber.api.java.After;
import cucumber.api.java.Before;

public class UiHooks {

public static final String BASE_URL = "https://baseURL/";
private Scenario scenario;

@Before
public void beforeScenario(Scenario scenario) {
    this.scenario = scenario;
        }

@After(order = 1)  //This will run first
public void afterScenario() {
    if (scenario.isFailed()){
       //do something like Secreen Shot or logger
        }
}

@After(order = 0)//This will run second
public void afterTest() {
   if (HookUtil.driver != null) {
        HookUtil.driver.close();
    }
    if (HookUtil.seleniumBase != null) {
        HookUtil.seleniumBase.stopService();
    }
}
}
public class HookUtil {
public static WebDriver driver = null;
public static SeleniumBase seleniumBase = null;
}
private void Setup() {

    seleniumBase = new SeleniumBase(UiHooks.BASE_URL);
    driver = seleniumBase.getDriver();
    HookUtil.driver = driver;
    HookUtil.seleniumBase = seleniumBase;
}
HookUtil.java:

import cucumber.api.Scenario;
import cucumber.api.java.After;
import cucumber.api.java.Before;

public class UiHooks {

public static final String BASE_URL = "https://baseURL/";
private Scenario scenario;

@Before
public void beforeScenario(Scenario scenario) {
    this.scenario = scenario;
        }

@After(order = 1)  //This will run first
public void afterScenario() {
    if (scenario.isFailed()){
       //do something like Secreen Shot or logger
        }
}

@After(order = 0)//This will run second
public void afterTest() {
   if (HookUtil.driver != null) {
        HookUtil.driver.close();
    }
    if (HookUtil.seleniumBase != null) {
        HookUtil.seleniumBase.stopService();
    }
}
}
public class HookUtil {
public static WebDriver driver = null;
public static SeleniumBase seleniumBase = null;
}
private void Setup() {

    seleniumBase = new SeleniumBase(UiHooks.BASE_URL);
    driver = seleniumBase.getDriver();
    HookUtil.driver = driver;
    HookUtil.seleniumBase = seleniumBase;
}
然后您可以在第一步创建设置和调用:

import cucumber.api.Scenario;
import cucumber.api.java.After;
import cucumber.api.java.Before;

public class UiHooks {

public static final String BASE_URL = "https://baseURL/";
private Scenario scenario;

@Before
public void beforeScenario(Scenario scenario) {
    this.scenario = scenario;
        }

@After(order = 1)  //This will run first
public void afterScenario() {
    if (scenario.isFailed()){
       //do something like Secreen Shot or logger
        }
}

@After(order = 0)//This will run second
public void afterTest() {
   if (HookUtil.driver != null) {
        HookUtil.driver.close();
    }
    if (HookUtil.seleniumBase != null) {
        HookUtil.seleniumBase.stopService();
    }
}
}
public class HookUtil {
public static WebDriver driver = null;
public static SeleniumBase seleniumBase = null;
}
private void Setup() {

    seleniumBase = new SeleniumBase(UiHooks.BASE_URL);
    driver = seleniumBase.getDriver();
    HookUtil.driver = driver;
    HookUtil.seleniumBase = seleniumBase;
}

你可以使用钩子,我在下面分享一个例子

UiHooks.java:

import cucumber.api.Scenario;
import cucumber.api.java.After;
import cucumber.api.java.Before;

public class UiHooks {

public static final String BASE_URL = "https://baseURL/";
private Scenario scenario;

@Before
public void beforeScenario(Scenario scenario) {
    this.scenario = scenario;
        }

@After(order = 1)  //This will run first
public void afterScenario() {
    if (scenario.isFailed()){
       //do something like Secreen Shot or logger
        }
}

@After(order = 0)//This will run second
public void afterTest() {
   if (HookUtil.driver != null) {
        HookUtil.driver.close();
    }
    if (HookUtil.seleniumBase != null) {
        HookUtil.seleniumBase.stopService();
    }
}
}
public class HookUtil {
public static WebDriver driver = null;
public static SeleniumBase seleniumBase = null;
}
private void Setup() {

    seleniumBase = new SeleniumBase(UiHooks.BASE_URL);
    driver = seleniumBase.getDriver();
    HookUtil.driver = driver;
    HookUtil.seleniumBase = seleniumBase;
}
HookUtil.java:

import cucumber.api.Scenario;
import cucumber.api.java.After;
import cucumber.api.java.Before;

public class UiHooks {

public static final String BASE_URL = "https://baseURL/";
private Scenario scenario;

@Before
public void beforeScenario(Scenario scenario) {
    this.scenario = scenario;
        }

@After(order = 1)  //This will run first
public void afterScenario() {
    if (scenario.isFailed()){
       //do something like Secreen Shot or logger
        }
}

@After(order = 0)//This will run second
public void afterTest() {
   if (HookUtil.driver != null) {
        HookUtil.driver.close();
    }
    if (HookUtil.seleniumBase != null) {
        HookUtil.seleniumBase.stopService();
    }
}
}
public class HookUtil {
public static WebDriver driver = null;
public static SeleniumBase seleniumBase = null;
}
private void Setup() {

    seleniumBase = new SeleniumBase(UiHooks.BASE_URL);
    driver = seleniumBase.getDriver();
    HookUtil.driver = driver;
    HookUtil.seleniumBase = seleniumBase;
}
然后您可以在第一步创建设置和调用:

import cucumber.api.Scenario;
import cucumber.api.java.After;
import cucumber.api.java.Before;

public class UiHooks {

public static final String BASE_URL = "https://baseURL/";
private Scenario scenario;

@Before
public void beforeScenario(Scenario scenario) {
    this.scenario = scenario;
        }

@After(order = 1)  //This will run first
public void afterScenario() {
    if (scenario.isFailed()){
       //do something like Secreen Shot or logger
        }
}

@After(order = 0)//This will run second
public void afterTest() {
   if (HookUtil.driver != null) {
        HookUtil.driver.close();
    }
    if (HookUtil.seleniumBase != null) {
        HookUtil.seleniumBase.stopService();
    }
}
}
public class HookUtil {
public static WebDriver driver = null;
public static SeleniumBase seleniumBase = null;
}
private void Setup() {

    seleniumBase = new SeleniumBase(UiHooks.BASE_URL);
    driver = seleniumBase.getDriver();
    HookUtil.driver = driver;
    HookUtil.seleniumBase = seleniumBase;
}

如果您想为每个场景打开和关闭浏览器,那么您应该尝试使用cucumber中的“@Before”和“@After”钩子。请参阅此处的文档-如果要打开和关闭每个场景的浏览器,则应尝试使用cucumber中的“@Before”和“@After”挂钩。请看这里的文档-谢谢你的帮助,我会试用的谢谢你的帮助,我会试用的