回答
Hamibot提供了多种点击操作方式,适用于不同场景。我来详细介绍这些方法:
基于坐标的点击
标准坐标点击(Android 7.0+)
// 文档地址 https://docs.hamibot.com/
click(500, 800); // 点击坐标(500, 800)
longClick(300, 600); // 长按坐标(300, 600)
- 需要Android 7.0及以上系统
click()执行后会等待点击完成(约150ms)才继续执行脚本longClick()会等待长按完成(约600ms)- 适用于无法通过控件识别的界面元素
Root权限点击
// 文档地址 https://docs.hamibot.com/
var ra = new RootAutomator();
ra.tap(500, 800); // 点击坐标
ra.tap(300, 600, 2); // 使用第2个"手指"点击(多点触摸)
ra.exit();
// 推荐在exit事件中退出
var ra = new RootAutomator();
events.on('exit', function() {
ra.exit();
});
- 需要root权限
- 执行无延迟,适合需要快速连续点击的场景
- 支持多点触摸(通过id参数区分不同"手指")
- 脚本结束前必须调用
ra.exit()释放资源
基于控件的点击
通过控件ID点击
// 文档地址 https://docs.hamibot.com/
id('com.tencent.mm:id/chat').findOne().click();
// 或处理不可点击的控件
var widget = id('xxx').findOne();
click(widget.bounds().centerX(), widget.bounds().centerY());
通过文本点击
// 文档地址 https://docs.hamibot.com/
click('微信'); // 点击文本为"微信"的控件
click('联系人', 1); // 点击第二个"联系人"文本
while (!click('确定')); // 重复点击直到成功
屏幕适配解决方案
// 文档地址 https://docs.hamibot.com/
setScreenMetrics(1080, 1920); // 设置设计时的分辨率
click(800, 200); // 在其他分辨率设备上会自动缩放
- 通过
setScreenMetrics(width, height)解决不同分辨率适配问题 - 例如在540×960屏幕上,
click(800,200)实际点击(400,100)
使用建议
- 优先使用基于控件的点击方式,更稳定可靠
- 对于游戏或特殊应用,使用RootAutomator可获得更好的性能
- 多设备运行时务必设置
setScreenMetrics()解决分辨率问题 - 长时间点击操作建议结合while循环确保成功执行
- RootAutomator使用后必须调用exit()释放资源,避免影响其他脚本
选择合适的点击方式能显著提高脚本的稳定性和适应性,根据你的具体场景选择最合适的方法。
ℹ️ 本回答由 AI 生成,内容仅供参考