selenium - Selenium:捕获 NoSuchElementException 出现在可点击元素上是否有用?
问题描述
我们为什么要抓NoSuchElementException
?当我们仅验证特定页面中元素的存在而不对其执行任何操作时,捕获异常是有意义的。我们可以捕获此异常并记录一条自定义消息,例如“找不到元素”
当我们要单击一个元素时,如果在页面中找不到它,selenium 会抛出NoSuchElementException
. 捕获此异常而不是让它停止测试并使测试用例失败有什么用?
注意:我的后续步骤取决于此单击步骤。
解决方案
捕获异常的一个原因是提供更多相关的测试失败输出。例如,如果div
在 20-30 个 div 的页面中找不到某个元素,导致选择器与该特定 div 不匹配,您可以使用通用错误消息让异常保持未被捕获,或者您可以捕获它并抛出一个带有错误消息“导航栏丢失”的不同异常。
如果从通用错误消息中可以清楚地看出什么是错误的,或者您有一个解释它的测试失败消息,则没有理由捕获它。
捕获此异常的另一个原因是它是跳过代码的一部分(如果/除非,请跳过此测试)。所以你寻找一个元素,如果它存在,你继续测试,如果它不存在 - 你跳过它。
可能还有其他原因,但这是两个常见的原因。
推荐阅读
- xslt - XSLT 1.0 循环遍历同一父节点的不同子节点
- amazon-dynamodb-dax - DynamoDB DAX 和高可用性
- c++ - /clang:-1: Xcode 上的链接器命令失败,退出代码为 1(使用 -v 查看调用)
- machine-learning - 机器学习中的图像预处理
- javascript - 在 React 中使用 JS ES6 承诺的问题 - TypeError: Cannot read property 'then' of undefined
- javascript - 如何在客户端从 mongodb 获取数据?
- c - 使用双下划线时启用编译器警告
- python - 使用 tensorflow 加载 LSUN 数据集
- python - 根据 txt 文件中的搜索结果分配变量值
- sql-server - 不使用动态 SQL 查询表月数据