我正在使用Selenium和Java来编写测试。 要查找我使用的网页元素:
wait = new WebDriverWait(driverChrome, 5);
WebElement element= wait.until(ExpectedConditions.visibilityOfElementLocated(By
.xpath("//td[@class='bla bla']")));
和之后我使用下面的代码双击元素:
action.doubleClick(element).build().perform();
但是会引发stale element reference
错误。
当我将visibilityOfElementLocated
更改为elementToBeClickable
时,它正常工作,
当我在双击之前看到元素时,怎么会发生错误?
答案 0 :(得分:0)
根据用于构建Web应用程序的框架,完全可以将应用程序重新重绘。我自己遇到的Here is one example。所以你在案件中看到的是:
当然,如果永远无法点击,则无法使用ExpectedConditions.elementToBeClickable()
。 ExpectedConditions
有许多条件,您需要根据具体情况使用不同的条件。你也可以写custom conditions;谷歌"流利的等待"找到各种例子。
如果您使用Page Object model,则可以为每个元素干净地封装所有这些内容。