验证元素不存在
验证元素不存在 用于在移动端通过元素选择器定位目标元素,验证它在当前屏幕中不存在,并输出验证结果(True / False)。常用于确认弹窗已关闭、错误提示未出现、广告已消失等场景。
指令标识:MobileVerifyElementNotExist
指令类型:移动端指令
指令描述:验证指定元素在手机当前屏幕不存在,输出验证结果(True 或 False)
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。验证元素不存在 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入节点,在右侧表单选择目标元素并填写结果变量名 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.mobileVerifyElementNotExist(selector="...", outKey="...") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 点击关闭后,验证弹窗 / 广告元素已不存在。
- 执行操作后,验证错误提示未出现。
- 删除元素后,验证该元素确实已被移除。
- 验证加载动画已消失,确认页面加载完成。
如果要验证元素存在,请使用 验证元素存在。
- 已准备好稳定的元素选择器(
id、xpath、text、accessibilityId等)。 - 在执行验证前,相应操作(如关闭弹窗、删除元素)已经完成。
- 已规划好「将结果保存至」的变量名,用于引用布尔结果。
- 默认 False结果处理 为
输出结果(OUTPUT_RESULT):验证失败时输出false并继续流程;若希望验证失败即中止,可改为抛出异常(THROW_EXCEPTION)。
【图片占位 | command-mobileverifyelementnotexist-config】
截图内容建议: 截一张可视化编排页面,画布选中本节点,右侧属性面板展示「元素选择器」「将结果保存至」与高级区的「超时时间」「False结果处理」。
标注建议: 用 ① 标出节点,用 ② 标出元素选择器,用 ③ 标出结果变量名,用 ④ 标出 False结果处理。
用户看完应能明白: 主要填选择器 + 结果变量名,超时和失败处理为高级项。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:点击关闭后,验证错误提示已不存在。按 4 步即可跑起来:
- 在前序流程中完成关闭弹窗或触发错误提示消失的操作。
- 添加 验证元素不存在 节点,在 元素选择器 中选择或填写:
//*[@resource-id='com.example.app:id/error_message']- 在 将结果保存至 填写变量名(如
notExist),按需在高级区设置 超时时间 与 False结果处理。 - 点击运行,确认元素不存在时返回
true。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 元素定位方式,如 id、xpath、text、accessibilityId 等,不能为空 |
| 超时时间 | timeout | Double | 否 | 10000 | 高级选项。查找元素的最大等待时间(毫秒) |
| False结果处理 | falseResultHandling | Enum | 否 | OUTPUT_RESULT | 高级选项。验证为 False 时的行为:OUTPUT_RESULT(输出结果并继续)、THROW_EXCEPTION(抛出异常中断) |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | Boolean | 否 | 保存验证结果:true 表示元素不存在(通过),false 表示元素存在(失败);不填则结果无法被后续节点引用 |
- 运行成功,结果变量得到布尔值。
- 元素确实不存在时返回
true。
运行后你会看到(以上面场景为例):
- 错误提示元素已消失,变量
notExist得到true,流程继续向下执行。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
返回 false | 元素仍然存在 | 确认前序操作已生效(如弹窗确已关闭) |
| 直接抛异常中断 | falseResultHandling 设为 THROW_EXCEPTION | 如需继续流程,改为 OUTPUT_RESULT |
| 结果不稳定 | 元素异步消失,超时过短 | 适当调大 timeout,给页面足够时间 |
| 误判为不存在 | 选择器本身有误 | 核对选择器是否能正确匹配目标元素 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 验证错误提示元素不存在,结果保存到 notExistbots.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结果处理」「将结果保存至」分别对应代码里的 selector、timeout、falseResultHandling、outKey。
如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:返回值的含义是什么?
Section titled “Q1:返回值的含义是什么?”A: 返回 true 表示元素不存在(验证通过),返回 false 表示元素存在(验证失败)。
Q2:超时时间如何处理?
Section titled “Q2:超时时间如何处理?”A: 指令会在 timeout 时间内尝试查找元素。如果元素一直找不到,不会抛异常,而是返回 true。
Q3:验证时机有什么要求?
Section titled “Q3:验证时机有什么要求?”A: 验证前确保相应操作(关闭弹窗、删除元素等)已完成。动态场景下建议设置合理的 timeout。
Q4:False结果处理如何使用?
Section titled “Q4:False结果处理如何使用?”A: 用于控制验证失败时的行为:OUTPUT_RESULT(默认)输出 false 并继续;THROW_EXCEPTION 抛出异常中断流程。