【问题标题】:NullPointerException when getting text from a specific element [duplicate]从特定元素获取文本时出现 NullPointerException [重复]
【发布时间】:2017-04-23 09:50:41
【问题描述】:

我正在学习如何使用 java 来使用 selenium。我有问题。有html代码:

<h2 class="cart-popup-product__title">Laptop Dell XPS 13 2015 13.3inch Touch (Xám) - Hàng nhập khẩu</h2>

这是我获取文本的代码:

By productName = By.className("cart-popup-product__title");
public String ProductName(){
    String pn = driver.findElement(productName).getText();
    return pn;
}

Eclipse 显示错误消息:NullPointerException。我曾尝试使用xpathcssSelector,但它不起作用。

*更新:我已经解决了我的问题。我只是将this.driver = driver; 添加到构造函数中。初始化构造函数时忘记添加了。

感谢大家帮助我改进。

【问题讨论】:

  • 您应该尝试找出哪个变量为空。司机?
  • 他应该阅读并附上堆栈跟踪,这样我们就不会猜测了。
  • 我在 2 天前遇到了这个问题。我尝试使用许多解决方案:搜索、调试。根据我到目前为止的知识,我无法解决这个问题。所以我决定在那里问。谢谢大家帮助我。
  • 至少显示你的堆栈跟踪。我们无法确定是哪个产生了NPE

标签: java selenium selenium-webdriver nullpointerexception classname


【解决方案1】:

它可以是具有相同类名但没有任何文本的另一个元素。

FindElement() 方法不会抛出 NoSuchElementException - 这是找到元素的明确标志。

是否可以通过以下定位器在浏览器控制台中找到元素? 您也可以尝试找到所需元素的父元素,然后调用 getText() 方法。

【讨论】:

  • WebElement 没有文本将给出一个空的String,而不是null。即使它是空的,OP 也不会对它做任何事情,所以它不会导致NullPointerException
  • 感谢您的支持。我已经解决了我的问题。只需将this.driver = driver; 添加到构造函数即可。
猜你喜欢
  • 1970-01-01
  • 2021-07-18
  • 1970-01-01
  • 2018-06-04
  • 2011-07-30
  • 2017-01-24
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
相关资源
最近更新 更多