Shared WebDriver se vuelve nulo en el segundo escenario usando PicoContainer
He usado la solución aceptadaaquí y se me ocurrió el siguiente código:
Bibliotecas referenciadas:
Característica:
Feature: FeatureA
Scenario: ScenarioA
Given
When
Then
Scenario: ScenarioB
Given
When
Then
Paso base:
public class BaseStep {
protected WebDriver driver = null;
private static boolean isInitialized = false;
@Before
public void setUp() throws Exception {
if (!isInitialized) {
driver = SeleniumUtil.getWebDriver(ConfigUtil.readKey("browser"));
isInitialized = true;
}
}
@After
public void tearDown() {
driver.quit();
}
}
Paso A:
public class StepA {
private BaseStep baseStep = null;
private WebDriver driver = null;
// PicoContainer injects BaseStep class
public StepA(BaseStep baseStep) {
this.baseStep = baseStep;
}
@Given("^I am at the Login page$")
public void givenIAmAtTheLoginPage() throws Exception {
driver = baseStep.driver;
driver.get(ConfigUtil.readKey("base_url"));
}
@When
@When
@Then
@Then
}
Sin embargo, el conductor "muere" después detearDown()
del Escenario A y se vuelve nulo en el paso Dado del Escenario B (ambos escenarios usan el mismo Dado). No estoy usando Maven.