首页 > 解决方案 > Selenium:捕获 NoSuchElementException 出现在可点击元素上是否有用?

问题描述

我们为什么要抓NoSuchElementException?当我们仅验证特定页面中元素的存在而不对其执行任何操作时,捕获异常是有意义的。我们可以捕获此异常并记录一条自定义消息,例如“找不到元素”

当我们要单击一个元素时,如果在页面中找不到它,selenium 会抛出NoSuchElementException. 捕获此异常而不是让它停止测试并使测试用例失败有什么用?

注意:我的后续步骤取决于此单击步骤。

标签: seleniumnosuchelementexception

解决方案


捕获异常的一个原因是提供更多相关的测试失败输出。例如,如果div在 20-30 个 div 的页面中找不到某个元素,导致选择器与该特定 div 不匹配,您可以使用通用错误消息让异常保持未被捕获,或者您可以捕获它并抛出一个带有错误消息“导航栏丢失”的不同异常。

如果从通用错误消息中可以清楚地看出什么是错误的,或者您有一个解释它的测试失败消息,则没有理由捕获它。

捕获此异常的另一个原因是它是跳过代码的一部分(如果/除非,请跳过此测试)。所以你寻找一个元素,如果它存在,你继续测试,如果它不存在 - 你跳过它。

可能还有其他原因,但这是两个常见的原因。


推荐阅读