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