获取元素属性
获取元素属性 用于在移动设备上定位指定页面元素,并读取它的某个属性值。它支持 Android、iOS 和 Harmony 设备,常用于获取元素文本、可用状态、选中状态、资源标识等信息。
指令标识:MobileGetAttribute
指令类型:移动端指令
指令描述:获取指定页面元素的属性值
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。获取元素属性 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「获取元素属性」节点,填写元素选择器、属性名称和输出变量 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.mobileGetAttribute(selector=..., name="text", outKey="attrValue") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 需要读取移动端元素的文本内容,例如按钮、标签、输入框显示值。
- 需要判断元素状态,例如
enabled、checked、selected。 - 需要获取元素资源标识,例如
resource-id、content-desc、class。 - 需要把属性值保存为变量,供后续验证、分支判断或日志输出使用。
- 已连接并启动目标移动设备或云手机环境。
- 元素选择器能稳定定位到目标元素,例如
id、xpath、text、accessibilityId。 - 已确认目标平台支持要读取的属性名称,不同平台和控件可用属性可能不同。
- 如页面加载较慢,建议先等待元素出现,再读取属性。
【图片占位 | command-mobilegetattribute-config】
截图内容建议: 截一张可视化编排页面,画布选中「获取元素属性」节点,右侧属性面板展示「元素选择器」「属性名称」「超时时间」「将结果保存至」。
标注建议: 用 ① 标出元素选择器,用 ② 标出属性名称,用 ③ 标出超时时间,用 ④ 标出输出变量。
用户看完应能明白: 这个指令先定位移动端元素,再读取指定属性并保存到变量。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:读取移动端设置页中开关控件的选中状态。按 4 步即可跑起来:
- 在工作流画布中添加 获取元素属性 指令。
- 在 元素选择器 中填写稳定定位,例如:
//*[@resource-id='switch_notification']- 在 属性名称 中填写要读取的属性,例如
checked;在 将结果保存至 中填写attrValue。 - 运行后查看变量
attrValue,再接验证或条件分支节点处理。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 元素定位方式,例如 id、xpath、text、accessibilityId 等,不能为空。 |
| 属性名称 | name | String | 是 | - | 需要获取的属性名称,例如 text、value、checked、enabled、selected、resource-id 等。 |
| 超时时间 | timeout | Integer | 否 | 10000 | 高级选项。指令最大等待时间(毫秒),大于 0 时会根据该值计算重试次数。 |
| 是否发送消息 | sendMsgFlag | Boolean | 否 | True | 是否发送节点消息。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | String | 否 | 保存获取到的元素属性值,例如 output。 |
- 节点能在超时时间内定位到目标元素。
- 输出变量中得到目标属性值;元素不存在或属性为空时可能返回空字符串。
- 后续验证或分支节点可以读取该输出变量。
运行后你会看到(以上面场景为例):
- 输出变量
attrValue得到开关状态,例如true或false。 - 运行日志中没有元素定位或超时错误。
【图片占位 | command-mobilegetattribute-success】
建议放一张运行成功截图:节点成功,变量面板展示attrValue的属性值。图片用于说明属性读取成功后的结果。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| 超时未找到元素 | 选择器不稳定,或页面尚未加载完成 | 先使用等待/验证元素存在指令;调整 selector 或 timeout |
| 返回空字符串 | 元素不存在、属性为空,或属性名不被当前控件支持 | 确认元素存在,并通过页面源码或开发者工具核对属性名 |
| Android 可用但 iOS 不可用 | 不同平台属性名称有差异 | 按目标平台确认 text、value、name 等可用属性 |
| 后续节点拿不到结果 | 未配置输出变量 | 在「将结果保存至」填写变量名,例如 attrValue |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 获取移动端开关控件的 checked 属性值并保存到变量bots.mobileGetAttribute( selector="//*[@resource-id='switch_notification']", name="checked", timeout=10000, outKey="attrValue",)可视化表单里的「元素选择器」「属性名称」「超时时间」「将结果保存至」分别对应代码里的 selector、name、timeout、outKey。
如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:返回值是什么类型?
Section titled “Q1:返回值是什么类型?”A: 返回字段 value 为字符串,元素不存在或属性为空时返回空字符串。
Q2:不同平台支持的属性名有差异吗?
Section titled “Q2:不同平台支持的属性名有差异吗?”A: 有差异。不同平台和控件的可用属性名不完全一致,请先通过页面源码或开发者工具确认。常用属性包括 text、value、enabled、checked、selected、resource-id、class、content-desc 等。
Q3:如何提高获取成功率?
Section titled “Q3:如何提高获取成功率?”A: 建议先使用 验证元素存在 指令确认元素可用,再调用本指令读取属性。
Q4:超时时间如何设置?
Section titled “Q4:超时时间如何设置?”A: timeout 为大于 0 的整数,最大不超过 60,000ms。建议根据页面加载速度和设备性能设置。