只是想知道,是否存在StaleElementReferenceException在
WebDriver ExpectedConditions-->elementToBeClickable(WebElement element)
检查函数的源代码,StaleElementReferenceException在catch中并返回null。但是方法ExpectedConditions.elementToBeClickable中有一行代码。在随机时间抛出此异常(当前没有任何具体测试可显示)
public ExpectedCondition<WebElement> visibilityOfElement =
ExpectedConditions.visibilityOf(element);如果我们检查上面的代码,就不会捕获StaleElementException。
能否帮助理解上述方法中是否存在staleElementException的可能性?如果是-这是已知的问题吗?有防止随机故障的工作吗?
谢谢Kapil Aggarwal
发布于 2014-01-28 23:55:50
只需将对ExpectedCondition的调用包装在使用FluentWait ".ignoring“子句用于StaleElementException的WebDriverWait中即可。然后,您可以在期望的条件下循环有限次,直到放弃一个TimeoutException。
更新:自从我第一次回答这个问题以来,我学到了很多。作为一名TDD开发人员,我现在知道了,单元测试使用了一个在try-catch块中封装的预期条件的方法是困难的,因此不建议编写类似的代码。例如,尝试在使用Mockito的使用.ignoring的方法中对FluentWait子句进行单元测试。这一点都不容易。创建一个临时更改隐式等待的方法,然后执行driver.findElement和检查单击性,然后将隐式等待恢复到默认的"0",则创建单元测试要容易得多。再来两分钱。
我可能会写一个测试项目,展示这个东西的例子(在2015年的某个时候)。
https://stackoverflow.com/questions/20947962
复制相似问题