【发布时间】:2018-08-20 06:18:40
【问题描述】:
我在 Java 中有一个 selenium 测试,我正在做一些这样的断言:
assertFalse(isElementPresent(By.xpath("//td[2]/div")));
private boolean isElementPresent(By by) {
try { driver.findElement(by); return true; }
catch (NoSuchElementException e) {
return false; }
这是 Selenium 从 IDE 导出到 Java Webdriver 时生成的标准方法。
(是的,我想断言这个元素不存在)
当我在上面的代码行进行测试时,我总是会出错 错误:过时的元素引用:元素未附加到 DOM
但是当我在该步骤前面放置一个 thread.sleep 时,它可以工作。 我不明白的事实是等待 1 毫秒就足够了。 在断言之前等待是典型的吗? 还有其他方法可以解决这个问题吗? (隐式等待在这里没有帮助) 来自德国的问候!
【问题讨论】:
-
分享
isElementPresent()的代码 -
不要添加评论,而是使用此附加信息更新实际问题以进行正确分析。
标签: selenium selenium-webdriver testng assertion staleelementreferenceexception