0

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<|
Poo M
  • 31
  • 3

0 Answers0