跳转到内容

验证元素不存在

验证元素不存在 用于检查指定元素是否已不在页面 DOM 中,并输出验证结果(True/False)。它常用于确认删除操作生效、条件渲染结果、元素移除等自动化测试断言场景。

指令标识:VerifyElementNotPresent
指令类型:网页指令
指令描述:验证指定页面元素不存在于 DOM 中

工作流支持「可视化编排」和「代码编排」两种创建方式。验证元素不存在 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。

方式怎么用适合人群
可视化编排(推荐先学)拖入「验证元素不存在」节点,在右侧表单填写元素选择器大多数用户,零代码,适合快速搭建和调试
代码编排(Python)在脚本中调用 bots.verifyElementNotPresent(selector="...", outKey="output")熟悉代码、需要复用脚本或批量生成流程的用户

第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。

  • 验证删除操作后元素已从 DOM 中移除。
  • 确认某些元素在特定条件下未被加载到页面。
  • 验证根据条件渲染的元素确实不显示。
  • 确认通过脚本动态移除的元素已从 DOM 中删除。
  • 浏览器已打开目标页面(通常先执行 打开网页)。
  • 元素选择器(CSS 选择器或 XPath)填写正确。
  • 如果目标元素在 iframe 中,已准备好 iframe 的定位器(frameSelector)。
  • 已规划好验证失败时的处理方式(输出结果或抛出异常);如需调整查找等待时间,可在查找元素高级配置中设置 timeout
验证元素不存在

下面用一个常见场景演示:删除某条记录后,验证对应元素已从页面移除。按 3 步即可跑起来:

  1. 先添加 打开网页 打开目标页面,并完成删除操作。
  2. 添加 验证元素不存在 节点,填写要验证的 元素选择器,设置输出变量名:
//*[@id='__next']/div[2]/div[2]/section/div[1]/h1
  1. 点击运行,确认输出变量得到 true(元素已不存在于 DOM 中)。
界面名称代码属性名类型必填默认值说明
元素选择器selectorString-用于定位页面元素的选择器,支持 CSS 选择器、XPath 等,不能为空。
iframe页面定位器frameSelectorString-iframe 的 XPath,如果目标元素在 iframe 中则需要填写,例如 //html/iframe。高级选项。
查找元素高级配置findElementOptionsJSON-查找元素的高级配置,可包含 timeout(超时时间,单位毫秒)等;未配置时使用系统默认值。高级选项。
False结果处理falseResultHandlingEnumOUTPUT_RESULT验证结果为 False 时的处理方式:OUTPUT_RESULT(输出结果,默认)、THROW_EXCEPTION(抛出异常)。高级选项。
界面名称代码属性名类型必填说明
将结果保存至outKeyBoolean填写变量名称(如 notPresent),保存验证结果(true/false)。
  • 节点运行成功,日志中没有异常。
  • 输出变量得到布尔结果:true 表示元素不存在于 DOM 中,false 表示元素仍存在。
  • 设为抛出异常时,验证失败会中断流程;设为输出结果时,会继续执行后续节点。

运行后你会看到(以上面场景为例):

  • 输出变量得到 true(目标元素已从 DOM 中移除)。
  • 运行日志显示验证执行成功。
验证元素不存在
现象 / 报错原文可能原因处理建议
结果为 false(元素仍存在)元素只是隐藏未移除,或删除未生效隐藏元素仍在 DOM 中,应改用 验证元素不可见;确认删除操作已完成
验证过早返回 false元素移除是异步的,检查太早在查找元素高级配置中设置合理的 timeout 等待移除
iframe 中元素验证不准未填写 iframe 定位器通过 frameSelector 指定 iframe 的 XPath
验证失败直接中断流程falseResultHandling 设为抛出异常如需继续执行,改用 OUTPUT_RESULT

代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。

# 打开页面后,验证目标元素是否已不存在于 DOM,结果保存到 output
bots.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结果处理」「将结果保存至」分别对应代码里的 selectorfindElementOptionsfalseResultHandlingoutKey;超时时间通过 findElementOptionstimeout 字段设置。如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。

A: 该指令检查元素是否在 DOM 中不存在。隐藏的元素(display:nonevisibility:hidden)仍存在于 DOM 中,会返回 false

Q2:验证元素不存在和验证元素不可见有什么区别?

Section titled “Q2:验证元素不存在和验证元素不可见有什么区别?”

A: 验证元素不存在 检查元素是否在 DOM 中不存在;验证元素不可见 检查元素是否不可见(但可能仍存在于 DOM 中)。

Q3:如果需要验证元素不可见怎么办?

Section titled “Q3:如果需要验证元素不可见怎么办?”

A: 应使用 验证元素不可见 指令。

A: 返回 true 表示元素不存在于 DOM 中;返回 false 表示元素存在于 DOM 中。

A: 该参数用于控制验证失败时的执行行为(括号内为需传入的参数值):

  • 输出结果(OUTPUT_RESULT,默认):验证失败时输出 falseoutKey,继续执行后续流程。
  • 抛出异常(THROW_EXCEPTION):验证失败时抛出异常,中断当前流程执行。