有人可以告诉我为什么如果我运行以下代码我没有得到任何错误:
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))
}
答案 0 :(得分:4)
您正在构造器中进行名称屏蔽,因此实际上并没有像您期望的那样为私有类变量分配值。
删除类型声明,以便只拥有this.registerElements = new ArrayList()