验证元素不存在
验证元素不存在 用于检查指定元素是否已不在页面 DOM 中,并输出验证结果(True/False)。它常用于确认删除操作生效、条件渲染结果、元素移除等自动化测试断言场景。
指令标识:VerifyElementNotPresent
指令类型:网页指令
指令描述:验证指定页面元素不存在于 DOM 中
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。验证元素不存在 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「验证元素不存在」节点,在右侧表单填写元素选择器 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.verifyElementNotPresent(selector="...", outKey="output") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 验证删除操作后元素已从 DOM 中移除。
- 确认某些元素在特定条件下未被加载到页面。
- 验证根据条件渲染的元素确实不显示。
- 确认通过脚本动态移除的元素已从 DOM 中删除。
- 浏览器已打开目标页面(通常先执行 打开网页)。
- 元素选择器(CSS 选择器或 XPath)填写正确。
- 如果目标元素在 iframe 中,已准备好 iframe 的定位器(
frameSelector)。 - 已规划好验证失败时的处理方式(输出结果或抛出异常);如需调整查找等待时间,可在查找元素高级配置中设置
timeout。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:删除某条记录后,验证对应元素已从页面移除。按 3 步即可跑起来:
- 先添加 打开网页 打开目标页面,并完成删除操作。
- 添加 验证元素不存在 节点,填写要验证的 元素选择器,设置输出变量名:
//*[@id='__next']/div[2]/div[2]/section/div[1]/h1- 点击运行,确认输出变量得到
true(元素已不存在于 DOM 中)。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 用于定位页面元素的选择器,支持 CSS 选择器、XPath 等,不能为空。 |
| iframe页面定位器 | frameSelector | String | 否 | - | iframe 的 XPath,如果目标元素在 iframe 中则需要填写,例如 //html/iframe。高级选项。 |
| 查找元素高级配置 | findElementOptions | JSON | 否 | - | 查找元素的高级配置,可包含 timeout(超时时间,单位毫秒)等;未配置时使用系统默认值。高级选项。 |
| False结果处理 | falseResultHandling | Enum | 否 | OUTPUT_RESULT | 验证结果为 False 时的处理方式:OUTPUT_RESULT(输出结果,默认)、THROW_EXCEPTION(抛出异常)。高级选项。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | Boolean | 否 | 填写变量名称(如 notPresent),保存验证结果(true/false)。 |
- 节点运行成功,日志中没有异常。
- 输出变量得到布尔结果:
true表示元素不存在于 DOM 中,false表示元素仍存在。 - 设为抛出异常时,验证失败会中断流程;设为输出结果时,会继续执行后续节点。
运行后你会看到(以上面场景为例):
- 输出变量得到
true(目标元素已从 DOM 中移除)。 - 运行日志显示验证执行成功。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
结果为 false(元素仍存在) | 元素只是隐藏未移除,或删除未生效 | 隐藏元素仍在 DOM 中,应改用 验证元素不可见;确认删除操作已完成 |
验证过早返回 false | 元素移除是异步的,检查太早 | 在查找元素高级配置中设置合理的 timeout 等待移除 |
| iframe 中元素验证不准 | 未填写 iframe 定位器 | 通过 frameSelector 指定 iframe 的 XPath |
| 验证失败直接中断流程 | falseResultHandling 设为抛出异常 | 如需继续执行,改用 OUTPUT_RESULT |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 打开页面后,验证目标元素是否已不存在于 DOM,结果保存到 outputbots.openUrl(url="https://example.com")bots.verifyElementNotPresent( selector="//*[@id='__next']/div[2]/div[2]/section/div[1]/h1", findElementOptions='{"timeout":5000}', falseResultHandling="OUTPUT_RESULT", outKey="output",)可视化表单里的「元素选择器」「查找元素高级配置」「False结果处理」「将结果保存至」分别对应代码里的 selector、findElementOptions、falseResultHandling、outKey;超时时间通过 findElementOptions 的 timeout 字段设置。如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:该指令检查的是什么?
Section titled “Q1:该指令检查的是什么?”A: 该指令检查元素是否在 DOM 中不存在。隐藏的元素(display:none 或 visibility:hidden)仍存在于 DOM 中,会返回 false。
Q2:验证元素不存在和验证元素不可见有什么区别?
Section titled “Q2:验证元素不存在和验证元素不可见有什么区别?”A: 验证元素不存在 检查元素是否在 DOM 中不存在;验证元素不可见 检查元素是否不可见(但可能仍存在于 DOM 中)。
Q3:如果需要验证元素不可见怎么办?
Section titled “Q3:如果需要验证元素不可见怎么办?”A: 应使用 验证元素不可见 指令。
Q4:返回 true 表示什么?
Section titled “Q4:返回 true 表示什么?”A: 返回 true 表示元素不存在于 DOM 中;返回 false 表示元素存在于 DOM 中。
Q5:False 结果处理如何使用?
Section titled “Q5:False 结果处理如何使用?”A: 该参数用于控制验证失败时的执行行为(括号内为需传入的参数值):
- 输出结果(
OUTPUT_RESULT,默认):验证失败时输出false到outKey,继续执行后续流程。 - 抛出异常(
THROW_EXCEPTION):验证失败时抛出异常,中断当前流程执行。