I have multi pages files:
login page
package pageFactory;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class userLoginPage {
private WebDriver driver; // Declare a class-level WebDriver variable
// Constructor to initialize the WebDriver instance
public userLoginPage(WebDriver driver) {
this.driver = driver;
}
.........
location page, same structure,
…
schdule page, same structure
package pageFactory;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class userSchedulingPage {
private WebDriver driver; // Declare a class-level WebDriver variable
// Constructor to initialize the WebDriver instance
public userSchedulingPage(WebDriver driver) {
this.driver = driver;
}
.........
.........
step definition class
import pageFactory.userLoginPage; // Importing the page object
import pageFactory.userReviewPage;
import pageFactory.userServicePage;
import pageFactory.userConfirmPage;
import pageFactory.userLocationPage;
import pageFactory.userSchedulingPage;
public class userBookOneService {
public static WebDriver driver;
private userLoginPage userLogin; // Declare the loginPage object
private userLocationPage userLocation;
private userServicePage userService;
@Before
public void setup() throws Exception{
// You can use either Firefox or Chrome as needed
System.setProperty("webdriver.chrome.driver", "pathchromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
}
@Given("^I login as a new user$")
public void navigate_to_admin_web_page() {
driver.get("https://link");
// Initialize the loginPage object
userLogin = new userLoginPage(driver);
.......
}
@When("^select location and confirm$")
public void select_location_and_confirm() {
userLocation = new userLocationPage(driver);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
.............
}
@When("^select service "([^"]*)" and confirm$")
public void select_service_one_and_confirm(String preferService) {
userService = new userServicePage(driver);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
.......
}
............
running good in first several pages, when run into service page got error “”this.driver” is null”
run as debug model got this on step
public userSchedulingPage(WebDriver driver) {
this.driver = driver;
}:
enter image description here
good page like:
enter image description here
How to fix it and why