Java Selenium Web元素变量与Web元素数组

时间:2018-08-18 01:09:17

标签: java selenium arraylist

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

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

1 个答案:

答案 0 :(得分:4)

您正在构造器中进行名称屏蔽,因此实际上并没有像您期望的那样为私有类变量分配值。

删除类型声明,以便只拥有this.registerElements = new ArrayList()