You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构造函数调用时Driver未生效,POM结构中URL无法加载问题排查

解决POM结构中WebDriver空指针异常(NullPointerException)

核心问题:构造函数赋值顺序错误

你的S1LandingPage构造函数里的赋值语句写反了,导致类的driver成员变量始终为null:

driver = this.driver; // 错误操作:将类的空成员变量赋值给参数,成员变量仍为null

正确的做法是把外部传入的driver实例赋值给类的成员变量:

this.driver = driver; // 正确操作:绑定外部传入的WebDriver实例

修正后的S1LandingPage代码

public class S1LandingPage { // 移除不必要的Sample1继承,页面类无需依赖主类
    WebDriver driver;

    public S1LandingPage(WebDriver driver) {
        this.driver = driver; // 修正赋值逻辑
        PageFactory.initElements(driver, this);
    }

    @FindBy(id="userEmail")
    WebElement Uname;

    @FindBy(id="userPassword")
    WebElement pw;

    @FindBy(id="login")
    WebElement submit;

    public void login(String email, String passwrd) {
        Uname.sendKeys(email);
        pw.sendKeys(passwrd);
        submit.click();
    }

    public void Goto()  {
        driver.get("https://rahulshettyacademy.com/client/"); 
    }
}

额外优化点

  1. 移除不必要的继承:页面类S1LandingPage不需要继承主类Sample1,继承会引入不必要的依赖,不符合POM的解耦设计。
  2. 统一配置WebDriver:主类中已经设置了窗口最大化和隐式等待,Goto方法里的重复配置可以删除,避免冗余代码。

当构造函数赋值修正后,driver成员变量将正确指向主类中初始化的ChromeDriver实例,调用driver.get()时就不会抛出NullPointerException了。

内容的提问来源于stack exchange,提问作者Sana Sameer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:45:03