selenium webdriver driver is null

  Kiến thức lập trình

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

LEAVE A COMMENT