SessionNotFoundException: la ID de sesión es nula. ¿Usa WebDriver después de llamar a quit ()? (Selenio)
Estoy tratando de escribir algunas pruebas de UI automatizadas de selenio usando Cucumber / Java. Si solo tengo una prueba en mi archivo de características, todo funciona bien. Pero si agrego una segunda prueba, aparece este error endriver.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'
Básicamente, estoy inicializando la variable webdriver en la clase InitializeWebdriver en un paquete, y luego haciendo referencia a ella en las otras clases (definición de pasos). Tenía la definición de paso que se enumera a continuación como parte de la clase InitializeWebdriver, y estaba funcionando bien (hasta que pasé a un paso diferente en una clase diferente. Así que moví ese paso a un archivo CommonSteps.java para ver si entonces fallaba, y lo hizo. Así que ahora estoy atascado. Estaba pensando en hacer unif (driver.equals(null))
en el@Before
y haciendo una acción diferente si ya se hubiera inicializado, pero no sé cuál sería esa otra acción.
Aquí está mi código:
pruebas.característica
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);
}
¡Gracias!