回答
基于控件识别的点击操作,可通过以下方式实现:
一、控件属性识别
-
文本属性定位
// 文档地址 https://docs.hamibot.com/ text("发送").findOne().click(); // 点击文本为"发送"的控件
适用于按钮、文本标签等具有可见文字的控件。
-
描述属性定位
desc("日志").findOne().click(); // 点击描述为"日志"的控件
适用于图标类控件(如Hamibot日志图标),需通过无障碍服务查看控件描述。
-
ID属性定位
id("action_log").findOne().click(); // 通过唯一ID定位
优先使用包名+ID组合(如
id("com.tencent.mobileqq:id/ivTitleBtnRightText")
),但需注意微信等应用ID会动态变化。
二、布局边界定位
// 点击指定坐标范围的控件
bounds(951, 67, 1080, 196).clickable().click();
- 需通过布局分析工具获取控件边界值(bounds属性)
- 存在分辨率兼容性问题,推荐作为备用方案
三、复合条件定位
// 组合筛选条件
className("android.widget.Button").text("确认").findOne().click();
通过类名+文本等组合条件,提高定位准确性。
四、特殊场景处理
- 重复文本控件
click("啦啦啦", 0); // 点击第一个"啦啦啦"
- 动态列表控件
使用find()
替代findOne()
,配合循环遍历查找。
⚠️ 优先使用唯一属性定位(desc/id),避免使用bounds或动态变化属性(如index)。可通过Hamibot悬浮窗的"布局分析"功能查看控件详细属性。
ℹ️ 本回答由 AI 生成,内容仅供参考