验证元素具有属性
验证元素具有属性 用于在移动设备上验证当前屏幕中的目标 UI 元素是否具有指定属性。它会通过元素选择器定位目标元素,并输出布尔结果,常用于检查元素状态、文本属性、可点击状态或勾选状态。
指令标识:MobileVerifyElementHasAttribute
指令类型:移动端指令
指令描述:验证手机当前屏幕中的特定UI元素具有选定的属性,输出验证结果(True或False)
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。验证元素具有属性 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「验证元素具有属性」节点,在右侧表单填写元素选择器、属性名称和输出变量 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.mobileVerifyElementHasAttribute(selector="...", attributeName="enabled", outKey="hasAttr") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 验证移动端按钮是否具有
enabled或clickable属性。 - 验证输入框、提示文案或列表项是否包含
text属性。 - 验证复选框、开关或选项是否具有
checked、selected等属性。 - 根据属性是否存在决定后续流程走向。
- 在提交表单前检查关键控件状态是否符合预期。
- 目标元素选择器可以稳定定位到唯一元素。
- 属性名称来自当前平台和控件实际支持的属性,例如
enabled、text、visible、clickable、selected、checked。 - 已规划好
falseResultHandling:验证失败时继续输出结果,还是抛出异常中断流程。 - 输出变量已规划好,用于保存验证结果(Boolean)。
【图片占位 | command-mobileverifyelementhasattribute-config】
截图内容建议: 截一张移动端可视化编排页面,画布选中「验证元素具有属性」节点,右侧属性面板展示「元素选择器」「属性名称」「False结果处理」「超时时间」「将结果保存至」。
标注建议: 用 ① 标出元素选择器,用 ② 标出属性名称,用 ③ 标出 False 结果处理,用 ④ 标出输出变量。
用户看完应能明白: 这个指令判断移动端元素是否具有某个属性,并把True或False保存到变量。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:验证移动端表单的提交按钮是否具有 enabled 属性。按 4 步即可跑起来:
- 先进入目标移动端页面,并确保表单区域已显示。
- 在工作流画布中添加 验证元素具有属性 指令。
- 在 元素选择器 中填写按钮定位,例如
//*[@text='提交'];在 属性名称 中填写enabled。 - 在 将结果保存至 中填写变量名(例如
hasAttr),点击运行查看布尔结果。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 选择要验证的页面 UI 元素,可直接填写 xpath/元素prompt 或从元素库选择元素 ID。 |
| 属性名称 | attributeName | String | 是 | - | 要验证的属性名称,例如 enabled、visible、clickable 等。 |
| False结果处理 | falseResultHandling | Enum | 否 | OUTPUT_RESULT | 高级选项。验证结果为 False 时的行为:OUTPUT_RESULT(输出结果,继续流程)、THROW_EXCEPTION(抛出异常,中断流程)。 |
| 超时时间 | timeout | Double | 否 | 10000 | 高级选项。查找元素超时退出时间,单位毫秒(ms)。 |
| 是否发送消息 | sendMsgFlag | Boolean | 否 | True | 是否发送节点消息。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | Boolean | 否 | 输出验证结果,False 表示元素不具有属性,True 表示元素具有属性。 |
- 运行日志中节点为成功状态。
- 输出变量中得到布尔结果(
True或False)。 - 元素具有指定属性时返回
True。 - 元素不具有指定属性时,按
falseResultHandling策略输出结果或中断流程。
运行后你会看到(以上面场景为例):
- 如果提交按钮具有
enabled属性,变量hasAttr保存为True。 - 如果按钮未具有该属性,变量
hasAttr保存为False,或在配置抛出异常时中断流程。
【图片占位 | command-mobileverifyelementhasattribute-success】
建议放一张运行成功截图:移动端页面显示目标按钮,变量面板中展示hasAttr=True或运行日志显示验证通过。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| 找不到元素 | 选择器错误、页面未加载完成或元素不在当前屏幕 | 检查选择器;必要时先滚动或等待元素出现 |
输出 False | 元素不具有指定属性,或属性值为空 | 用获取属性类指令确认实际属性名和属性值 |
| 验证失败直接中断流程 | falseResultHandling 设为 THROW_EXCEPTION | 需要继续流程时改为 OUTPUT_RESULT |
| 结果与预期不符 | 不同平台或控件支持的属性名不同 | 以当前设备实际属性为准,避免复用不兼容属性名 |
| 下游取不到验证结果 | 未配置输出变量 | 检查「将结果保存至」是否填写 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 验证提交按钮是否具有 enabled 属性bots.mobileVerifyElementHasAttribute( selector="//*[@text='提交']", attributeName="enabled", timeout=10000, falseResultHandling="OUTPUT_RESULT", outKey="hasAttr",)可视化表单里的「元素选择器」「属性名称」「超时时间」「False结果处理」「是否发送消息」「将结果保存至」分别对应代码里的 selector、attributeName、timeout、falseResultHandling、sendMsgFlag、outKey。
如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:哪些参数是必填的?
Section titled “Q1:哪些参数是必填的?”A: 必填参数为 selector(元素选择器)和 attributeName(属性名称)。outKey 用于保存结果,建议填写;timeout 为高级选项,默认 10000(单位毫秒 ms)。
Q2:属性值为空时返回什么?
Section titled “Q2:属性值为空时返回什么?”A: 属性值为 null 或空字符串时,返回 False。属性值不为空时,返回 True。
Q3:支持哪些平台?
Section titled “Q3:支持哪些平台?”A: 支持 Android 和 iOS 平台。常见属性名包括 enabled、text、visible、clickable、selected、checked 等。不同平台和控件类型支持的属性名可能不同。
Q4:如何确保验证准确性?
Section titled “Q4:如何确保验证准确性?”A: 使用准确的属性名,不同平台和控件类型支持的属性名可能不同。使用精确的选择器,避免定位到错误的元素。结合条件判断,根据验证结果执行不同的后续操作。
Q5:False结果处理如何使用?
Section titled “Q5:False结果处理如何使用?”A: 该参数用于控制验证失败场景下的执行行为,支持两种策略(括号内为需传入的参数值):
输出结果(OUTPUT_RESULT,默认):验证失败时输出 False 结果到 outKey,继续执行后续流程。
抛出异常(THROW_EXCEPTION):验证失败时抛出异常,中断当前流程执行。