SessionNotFoundException: o ID da sessão é nulo. Usando o WebDriver após chamar quit ()? (Selênio)
Estou tentando escrever alguns testes de interface do usuário automatizados de selênio usando Cucumber / Java. Se eu tiver apenas um teste no meu arquivo de recursos, tudo funcionará bem. Mas se eu adicionar um segundo teste, recebo esse erro emdriver.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'
Basicamente, estou inicializando a variável webdriver na classe InitializeWebdriver em um pacote e fazendo referência a ela nas outras classes (definição de etapa). Eu tinha a definição de etapa listada abaixo como parte da classe InitializeWebdriver, e estava funcionando muito bem (até passar para uma etapa diferente em uma classe diferente. Então, mudei essa etapa para um arquivo CommonSteps.java para ver se então falharia, e falhou.Então, agora estou preso.Eu estava pensando em fazer umaif (driver.equals(null))
no@Before
e executar uma ação diferente se já tivesse sido inicializada, mas não sei qual seria essa outra ação.
Aqui está o meu código:
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);
}
Obrigado!