Есть ли способ закрыть и снова открыть браузер при использовании сценариев огурца и веб-драйвера io - PullRequest
0 голосов
/ 21 октября 2019

Я использую v5 веб-драйвера io и фреймворк для огурцов. У меня есть наброски сценария с несколькими примерами. Я хотел бы закрыть браузер и открыть его между примерами, чтобы у меня была чистая веб-страница. Но я не могу найти способ сделать это. Я уверен, что видел что-то об этом, но не могу найти это.

Я просмотрел документы webdriverio, и последние вещи, которые я могу найти, были в 2016 году, в которых говорилось, что это невозможноно была дискуссия о реализации чего-либо, но я не могу найти больше подробностей.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вы можете использовать хуки, я поделюсь примером ниже.

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();
    }
}
}

HookUtil.java:

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;
}
0 голосов
/ 21 октября 2019

Вы ищете это:

browser.reloadSession()

https://webdriver.io/docs/api/browser/reloadSession.html

...