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();
}