Java selenium - how to convert static webDriver to non static in page object pattern?

100 views Asked by At

I want to convert static webDriver to non static webDriver in page factory pattern. Could you tell me how should I modify all classes to make it work ? I want to avoid null pointer exception in sharing webDriver between page objects.

public class Page {

@Getter @Setter
public static WebDriver driver;

public Page(WebDriver driver) {
    this.driver = driver;
    PageFactory.initElements(driver, this);
}
}

This is my step def class:

import static utils.Page.driver;

public class LandingPageStepDefs {

    private LandingPage landingPage = new LandingPage(driver);
   
    @And("Customer does something")
    public void customerDoesSomething() {
        landingPage.doSomething();
    }
}

This is my page object class

public class LandingPage extends Page {

    @FindBy(xpath = "this is xpath")
    private WebElement pageWebElement;

}

public LandingPage(WebDriver driver) {
    super(driver);
}

public void doSomething() {
    pageWebElement.click();
}
0

There are 0 answers