3 回答

TA贡献1825条经验 获得超4个赞
Selenium 的异常处理是证明您的测试不受意外情况影响的好方法。例如,如果元素不再附加到页面,您可以尝试再次查找该元素,例如在执行更改元素中的某些内容的 javascript 之后。
try{
driver.findElement(By.id("MyId")).click();
} catch (StaleElementReferenceException e){
driver.findElement(By.id("MyId")).click();
}
或者,例如,如果某个元素没有出现,您可以忽略,例如登录后页面顶部的 GDPR 覆盖。
try {
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("gdpr_overlay")));
} catch (TimeoutException ignored){
}
如果覆盖没有出现,这将忽略等待引发的异常并继续运行您的测试。

TA贡献1842条经验 获得超12个赞
异常是非常有用的功能,远比日志记录有用,你应该查一下。你可以在 catch 块中做任何你想做的事情,如果第一个元素失败,你可以尝试单击不同的元素,重定向到另一个页面......可能性真的是无穷无尽的。忠告:避免泛型异常,你应该捕获特定的异常并做出相应的反应,在最后一个catch块中你可以做泛型异常e并抛出错误。

TA贡献2080条经验 获得超4个赞
首先 ExceptionHandling 不是 Selenium 的概念,但它与 JAVA 有关。现在谈到处理异常的用法,它对您在构建框架时将理解的概念有很多深入的了解,但到目前为止,通过处理异常来理解您可以继续执行您的代码而不用 JVM 终止其余部分时它是很重要的遇到异常。
try{
}
catch{
}
finally
{
}
当你总是想执行一段代码时,不管你的场景是通过还是失败,finally 也非常有用,例如 driver.close()。希望对您有所帮助......快乐的编码:)
添加回答
举报