验证元素属性值
验证元素属性值 用于在移动设备上检查某个 UI 元素的指定属性值是否与预期一致,并输出验证结果(True/False)。它常用于自动化测试中的断言,如验证输入框内容、按钮启用状态、复选框选中状态等。
指令标识:MobileVerifyElementAttributeValue
指令类型:移动端指令
指令描述:验证手机当前屏幕中的 UI 元素的指定属性值是否正确,输出验证结果(True 或 False)
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。验证元素属性值 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「验证元素属性值」节点,在右侧表单填写选择器、属性名、属性值 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.mobileVerifyElementAttributeValue(selector="...", attributeName="...", attributeValue="...") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 验证输入框
text属性值是否与预期一致,确保输入正确。 - 验证按钮
enabled属性为true,确认按钮可点击。 - 验证复选框
checked属性为true,确认已勾选。 - 在自动化测试中做属性断言、结果校验或流程分支判断。
- 设备已连接,目标页面已加载完成。
- 元素选择器(如 XPath)能稳定定位到目标元素。
- 已确认要验证的属性名(如
enabled、text、checked),不同平台/控件的可用属性名存在差异。 - 已规划好验证失败时的处理方式(输出结果或抛出异常)。
【图片占位 | command-mobileverifyelementattributevalue-config】 截图内容建议: 截一张可视化编排页面,画布中选中「验证元素属性值」节点,右侧属性面板展示「元素选择器」「属性名称」「属性值」「超时时间」「False结果处理」「将结果保存至」等区域。 标注建议: 用 ① 标出画布中的节点,用 ② 标出元素选择器,用 ③ 标出属性名称与属性值,用 ④ 标出 False 结果处理与输出变量。 用户看完应能明白: 这个节点核心是定位元素并比较某个属性值,结果会写入输出变量。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:验证“我的”入口是否处于可用状态。按 3 步即可跑起来:
- 在移动端流程中添加 验证元素属性值 节点。
- 填写 元素选择器、属性名称(如
enabled)和 属性值(如true),并设置输出变量名:
//*[@content-desc='我的']- 点击运行,确认输出变量中得到
true/false的验证结果。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 元素定位方式,例如 XPath。 |
| 属性名称 | attributeName | String | 是 | - | 要验证的属性名称。 |
| 属性值 | attributeValue | String | 是 | - | 要验证的属性的期望值。 |
| 超时时间 | timeout | Double | 否 | 10000 | 查找元素的最大等待时间(毫秒)。高级选项,>0 时按该值计算重试次数。 |
| False结果处理 | falseResultHandling | Enum | 否 | OUTPUT_RESULT | 验证结果为 False 时的处理方式:OUTPUT_RESULT(输出结果,默认)、THROW_EXCEPTION(抛出异常)。高级选项。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | Boolean | 否 | 保存验证结果,True 表示属性值符合预期,False 表示不符合预期。 |
- 节点运行成功,能定位到目标元素。
- 输出变量中得到布尔结果:
true表示属性值符合预期,false表示不符合。 - 设为抛出异常时,验证失败会中断流程;设为输出结果时,会继续执行后续节点。
运行后你会看到(以上面场景为例):
- 输出变量中得到
true(属性值与预期一致)或false(不一致)。 - 运行日志显示验证执行成功。
【图片占位 | command-mobileverifyelementattributevalue-success】 建议放一张运行成功截图:节点为成功状态,输出面板展示验证结果(
true/false)。图片用于说明这个节点跑通后用户应该看到什么。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
结果始终为 false | 元素不存在,或属性名/属性值不匹配 | 确认选择器能定位元素,核对属性名与期望值(区分大小写) |
| 报错找不到元素 | 选择器错误或元素未加载 | 校验选择器,适当增大 timeout,或先确认元素可见 |
| 属性名无效 | 平台/控件不支持该属性名 | 通过 pageSource 或开发者工具确认可用属性名 |
| 验证失败直接中断流程 | falseResultHandling 设为抛出异常 | 如需继续执行,改用 OUTPUT_RESULT |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 验证 "我的" 入口的 enabled 属性是否为 true,结果保存到 outputbots.mobileVerifyElementAttributeValue( selector="//*[@content-desc='我的']", attributeName="enabled", attributeValue="true", timeout=10000, falseResultHandling="OUTPUT_RESULT", outKey="output",)可视化表单里的「元素选择器」「属性名称」「属性值」「超时时间」「False结果处理」「将结果保存至」分别对应代码里的 selector、attributeName、attributeValue、timeout、falseResultHandling、outKey。如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:哪些参数是必填的?
Section titled “Q1:哪些参数是必填的?”A: selector、attributeName、attributeValue 必填,outKey 用于保存结果。timeout 默认 10000 毫秒。
Q2:属性值比较是否区分大小写?
Section titled “Q2:属性值比较是否区分大小写?”A: 属性值比较是字符串完全匹配,区分大小写。如果元素不存在或属性不存在,返回 false。
Q3:不同平台的属性名有什么差异?
Section titled “Q3:不同平台的属性名有什么差异?”A: 不同平台/控件的可用属性名存在差异,请先通过 pageSource 或开发者工具确认。常见属性名:enabled、text、visible、clickable、selected、checked 等。
Q4:timeout 参数有什么限制?
Section titled “Q4:timeout 参数有什么限制?”A: timeout 为大于 0 的数值,最大不超过 60000 毫秒。建议先确认元素可见后再验证,以减少失败概率。
Q5:False 结果处理如何使用?
Section titled “Q5:False 结果处理如何使用?”A: 该参数用于控制验证失败时的执行行为(括号内为需传入的参数值):
- 输出结果(
OUTPUT_RESULT,默认):验证失败时输出false到outKey,继续执行后续流程。 - 抛出异常(
THROW_EXCEPTION):验证失败时抛出异常,中断当前流程执行。