在实时自动化中,在对每个元素执行某些操作之前,我们是否要检查每个元素的存在?
无论哪里有findElement声明,都有机会出现 NoSuchElementException 。我的问题是我们是否每次都要检查元素的存在?
findElement
是否每个findElement语句都必须用try-catch块包围?
try-catch
您可能会发现使用AbstractWebDriverEventListener类特别有用。此类实现WebDriverEventListener接口,该接口定义before并after挂钩由WebDriver触发的事件。
before
after
可以在钩子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事件之前检查该元素是否可单击。