java - 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))
}
解决方案
您正在构造函数中进行名称隐藏,因此它实际上并没有像您期望的那样为私有类变量赋值。
删除类型声明,这样你就有了this.registerElements = new ArrayList()
推荐阅读
- ruby-on-rails - 我无法使用 rails s 命令运行 Rails 服务器。它会抛出 NoMethodError
- python - IndexingError: Too many indexers ,在创建绘图时出现
- angular - 如何在使用异步 ngOnInit 时/之后更新视图?
- r - 使用 R 进行实时音频分析
- java - 如何引用我在 JScrollPane 中滚动的距离?
- windows - mouse_event / PostMessage 按键消息 - 与 GetKeyState() 不一致
- csv - JMeter 读取/写入 CSV 数据集配置
- javascript - 模拟时钟无法读取 null 的属性
- java - 为什么不推荐使用 IOUtils.close?
- python - 从变量传递参数 - Python