Я пытаюсь сделать относительно простой сценарий с cucumberjs. А именно, после сбоя сценария я хотел бы перезапустить браузер так, чтобы он вернулся к исходному состоянию для следующего сценария. Вот моя попыткаВыполнение скриншота и перезапуск браузера после сбоя сценария с CucumberJs
this.After({timeout: 30 * 1000}, function (scenario)
{
if(scenario.isFailed())
{
return browser.takeScreenshot().then(function (buffer)
{
console.log("Restarting The Browser As We Got A Failure");
browser.restart();
console.log("Finished Restarting The Browser");
return scenario.attach(new Buffer(buffer, 'base64'), 'image/png');
});
}
});
, который реализован в крюке cucumberjs, который запускается в конце тестового сценария. Однако, когда основа приходит использовать браузер в следующем сценарии тестирования он бросает исключение, как в следующем
[firefox #01] Step Definition: StepDefinitions\_Lpewf_Tc_04_steps.js:6
[firefox #01] Message:
[firefox #01] UnsupportedOperationError: This driver instance does not have a valid session ID (did you call WebDriver.quit()?) and may no longer be used.
[firefox #01] at WebDriverError (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\error.js:26:26)
[firefox #01] at UnsupportedOperationError (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\error.js:435:26)
[firefox #01] at checkHasNotQuit (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:378:15)
[firefox #01] at WebDriver.schedule (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:323:5)
[firefox #01] at WebDriver.findElements (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:897:22)
[firefox #01] at C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\built\element.js:141:44
[firefox #01] at Promise.invokeCallback_ (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1329:14)
[firefox #01] at TaskQueue.execute_ (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2790:14)
[firefox #01] at TaskQueue.executeNext_ (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2773:21)
[firefox #01] at C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2652:27
[firefox #01] Error
[firefox #01] at ElementArrayFinder.applyAction_ (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\built\element.js:371:27)
[firefox #01] at ElementArrayFinder._this.(anonymous function) [as sendKeys] (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\built\element.js:83:30)
[firefox #01] at ElementFinder._this.(anonymous function) [as sendKeys] (C:\Users\bxb145\WebstormProjects\_System_Test_Project\node_modules\protractor\built\element.js:685:22)
[firefox #01] at [object Object].EmployerEnterCodeAndLogin (C:\Users\bxb145\WebstormProjects\_System_Test_Project\PageObject\_External_Login_Page.js:181:38)
[firefox #01] at ModuleLoginPageExternal.EnterEmployeeCodeAndContinue (C:\Users\bxb145\WebstormProjects\_System_Test_Project\ModuleHelper\_Module_External_Login.js:27:40)
[firefox #01] at World.<anonymous> (C:\Users\bxb145\WebstormProjects\_System_Test_Project\StepDefinitions\_Lpewf_Tc_04_steps.js:22:47)
Я полагаю, почему это происходит и что мне нужно сделать, так что я могу использовать браузер снова, как обычно, после отказа/перезапуска браузера. Спасибо заранее. Кстати, скриншоты создаются в обычном режиме, когда JSON были преобразованы в HTML-отчеты.