跳转到内容

验证元素不存在

验证元素不存在 用于在移动端通过元素选择器定位目标元素,验证它在当前屏幕中不存在,并输出验证结果(True / False)。常用于确认弹窗已关闭、错误提示未出现、广告已消失等场景。

指令标识:MobileVerifyElementNotExist
指令类型:移动端指令
指令描述:验证指定元素在手机当前屏幕不存在,输出验证结果(True 或 False)

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

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

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

  • 点击关闭后,验证弹窗 / 广告元素已不存在。
  • 执行操作后,验证错误提示未出现。
  • 删除元素后,验证该元素确实已被移除。
  • 验证加载动画已消失,确认页面加载完成。

如果要验证元素存在,请使用 验证元素存在

  • 已准备好稳定的元素选择器(idxpathtextaccessibilityId 等)。
  • 在执行验证前,相应操作(如关闭弹窗、删除元素)已经完成。
  • 已规划好「将结果保存至」的变量名,用于引用布尔结果。
  • 默认 False结果处理输出结果OUTPUT_RESULT):验证失败时输出 false 并继续流程;若希望验证失败即中止,可改为 抛出异常THROW_EXCEPTION)。

【图片占位 | command-mobileverifyelementnotexist-config】
截图内容建议: 截一张可视化编排页面,画布选中本节点,右侧属性面板展示「元素选择器」「将结果保存至」与高级区的「超时时间」「False结果处理」。
标注建议: 用 ① 标出节点,用 ② 标出元素选择器,用 ③ 标出结果变量名,用 ④ 标出 False结果处理。
用户看完应能明白: 主要填选择器 + 结果变量名,超时和失败处理为高级项。

下面用一个常见场景演示:点击关闭后,验证错误提示已不存在。按 4 步即可跑起来:

  1. 在前序流程中完成关闭弹窗或触发错误提示消失的操作。
  2. 添加 验证元素不存在 节点,在 元素选择器 中选择或填写:
//*[@resource-id='com.example.app:id/error_message']
  1. 将结果保存至 填写变量名(如 notExist),按需在高级区设置 超时时间False结果处理
  2. 点击运行,确认元素不存在时返回 true
界面名称代码属性名类型必填默认值说明
元素选择器selectorString-元素定位方式,如 idxpathtextaccessibilityId 等,不能为空
超时时间timeoutDouble10000高级选项。查找元素的最大等待时间(毫秒)
False结果处理falseResultHandlingEnumOUTPUT_RESULT高级选项。验证为 False 时的行为:OUTPUT_RESULT(输出结果并继续)、THROW_EXCEPTION(抛出异常中断)
界面名称代码属性名类型必填说明
将结果保存至outKeyBoolean保存验证结果:true 表示元素不存在(通过),false 表示元素存在(失败);不填则结果无法被后续节点引用
  • 运行成功,结果变量得到布尔值。
  • 元素确实不存在时返回 true

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

  • 错误提示元素已消失,变量 notExist 得到 true,流程继续向下执行。
现象 / 报错原文可能原因处理建议
返回 false元素仍然存在确认前序操作已生效(如弹窗确已关闭)
直接抛异常中断falseResultHandling 设为 THROW_EXCEPTION如需继续流程,改为 OUTPUT_RESULT
结果不稳定元素异步消失,超时过短适当调大 timeout,给页面足够时间
误判为不存在选择器本身有误核对选择器是否能正确匹配目标元素

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

# 验证错误提示元素不存在,结果保存到 notExist
bots.mobileVerifyElementNotExist(
selector="//*[@resource-id='com.example.app:id/error_message']",
outKey="notExist",
)

如需验证失败时中断流程,并自定义超时:

bots.mobileVerifyElementNotExist(
selector="//*[@resource-id='com.example.app:id/error_message']",
timeout=10000,
falseResultHandling="THROW_EXCEPTION",
outKey="notExist",
)

可视化表单里的「元素选择器」「超时时间」「False结果处理」「将结果保存至」分别对应代码里的 selectortimeoutfalseResultHandlingoutKey

如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。

A: 返回 true 表示元素不存在(验证通过),返回 false 表示元素存在(验证失败)。

A: 指令会在 timeout 时间内尝试查找元素。如果元素一直找不到,不会抛异常,而是返回 true

A: 验证前确保相应操作(关闭弹窗、删除元素等)已完成。动态场景下建议设置合理的 timeout

A: 用于控制验证失败时的行为:OUTPUT_RESULT(默认)输出 false 并继续;THROW_EXCEPTION 抛出异常中断流程。