I want to use single instance of WebDriver across multiple classes.
I have pageObject.java
class that contains web elements and actions ex: click links, send value, etc.
public class pageObject {
private WebDriver driver;
private BaseTest baseTest;
public pageObject(BaseTest baseTest) {
this.driver = baseTest.driver;
}
I have another class stepDefinitionTest.java
that contains BDD glue code.
public class stepDefinitionTest {
pageObject homepage;
private BaseTest baseTest;
private WebDriver driver;
public stepDefinitionTest(BaseTest baseTest) {
this.baseTest = baseTest;
driver = baseTest.driver;
}
I have third class BaseStep.java
that contain @Before and @After method for setup and close browser.
import org.junit.After;
import org.junit.Before;
public class BaseTest {
public WebDriver driver;
@Before
public void before(){
code
}
@After
public void after(){
code
}
This isn't working and I'm failing to understand the root cause.
error message
Step failed
org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: StepDefinitions.stepDefinition has unsatisfied dependency 'interface org.openqa.selenium.WebDriver' for constructor 'public StepDefinitions.stepDefinition(org.openqa.selenium.WebDriver)' from org.picocontainer.DefaultPicoContainer@2fb0623e:2<|