首页 > 解决方案 > Java Selenium Web 元素变量与 Web 元素数组

问题描述

有人可以告诉我为什么如果我运行以下代码我没有收到任何错误:

 private WebElement userNameTxt ;
 public RegisterPage(WebDriver driver) {
        this.driver = driver;
        userNameTxt = By.id("user_name");
 }
 public void registerElement() {
  WebElement user = driver.findElement(userNameTxt);
}

但是如果我运行这段代码,我会得到 Java.nullpointerException?

 private ArrayList<WebElement> registerElements;
 private WebElement userNameTxt ;
 public RegisterPage(WebDriver driver) {
        this.driver = driver;
        ArrayList <WebElement>registerElements = new ArrayList();
        userNameTxt = By.id("user_name");
 }
 public void registerElement() {
  registerElements.add(0, driver.findElement(userNameTxt))
}

标签: javaseleniumarraylist

解决方案


您正在构造函数中进行名称隐藏,因此它实际上并没有像您期望的那样为私有类变量赋值。

删除类型声明,这样你就有了this.registerElements = new ArrayList()


推荐阅读