SessionNotFoundException: идентификатор сеанса является нулевым. Использование WebDriver после вызова quit ()? (Селен)
Я пытаюсь написать некоторые автоматизированные тесты пользовательского интерфейса селена с использованием Cucumber / Java. Если у меня есть только один тест в моем файле функций, все работает нормально. Но если я добавлю второй тест, я получу эту ошибкуdriver.get()
:
org.openqa.selenium.remote.SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: '2.51.0', revision: '1af067dbcaedd7d2ab9af5151fc471d363d97193', time: '2016-02-05 11:20:57'
По сути, я инициализирую переменную webdriver в классе InitializeWebdriver в одном пакете, а затем ссылаюсь на нее в других классах (определение шага). У меня есть определение шага, указанное ниже как часть класса InitializeWebdriver, и оно работало просто отлично (пока не перешел на другой шаг в другом классе. Поэтому я переместил этот шаг в файл CommonSteps.java, чтобы посмотреть, затем потерпел бы неудачу, и это сделало. Так что теперь я просто застрял. Я думал сделатьif (driver.equals(null))
в@Before
и выполнение другого действия, если оно уже было инициализировано, но я не знаю, каким будет это другое действие.
Вот мой код:
tests.feature
Feature: Two tests
Background:
Given I navigate to "http://www.google.com"
Scenario: Test one
When something happens
Scenario: Test two
When something else happens
InitializeWebDriver.java
public class InitializeWebDriver {
public static WebDriver driver = null;
@Before
public void beforeScenario() {
driver = new ChromeDriver();
}
@After
public void afterScenario() {
driver.quit();
}
}
CommonSteps.java
import myPackage.InitializeWebDriver;
public class CommonSteps {
static WebDriver driver = InitializeWebDriver.driver;
@Given("^I navigate to \"([^\"]*)\"$")
public void i_navigate_to(String url) {
driver.get(value);
}
Спасибо!