一尘不染

selenium:检查元素的存在

selenium

在实时自动化中,在对每个元素执行某些操作之前,我们是否要检查每个元素的存在?

无论哪里有findElement声明,都有机会出现 NoSuchElementException 。我的问题是我们是否每次都要检查元素的存在?

是否每个findElement语句都必须用try-catch块包围?


阅读 281

收藏
2020-06-26

共1个答案

一尘不染

您可能会发现使用AbstractWebDriverEventListener类特别有用。此类实现WebDriverEventListener接口,该接口定义beforeafter挂钩由WebDriver触发的事件。

可以在钩子beforeFindBy之前实现这样的一种,以检查element的存在。例如:

public void beforeFindBy(By by, WebElement element, WebDriver driver) {
    // Explicit wait to check for the presence of the element using the "by" locator
}

同样,before hook
beforeClickOnOn可以实现为在对该元素执行click事件之前检查该元素是否可单击。

2020-06-26