1 核心现象
✅ 全流程前置步骤正常:加号菜单、添加朋友、搜索微信号、进入个人资料页、能正常找到 textContains ("添加到通讯录") 按钮控件
✅ 日志显示按钮点击执行成功,但页面始终停留在微信个人资料主页,无法自动跳转到「申请添加朋友」验证消息页面,后续验证框查找必然失败
✅ 纯前台手动点击按钮 / 纯前台独立测试脚本可正常跳转验证页面;Auto.js 后台 / 异步控件点击模式无法触发新版微信原生 UI 跳转动画,被微信异步动画校验机制拦截
✅ 不是控件查找匹配问题、不是单纯固定延时不足问题、不是验证输入框本身查找代码问题、不是全局固定坐标适配问题
✅ 本质:新版微信对 后台无障碍框架直接调用控件 .click () 的异步点击事件做了动画跳转拦截校验,仅真实前台触摸点击(控件相对中心点触摸点击、前台同步交互)才会触发正常页面跳转;后台纯控件方法无法触发跳转
2 关键区分
✅ 控件本身存在、识别正确 ✅
✅ 前台同步触摸交互:正常跳转 ✅
✅ 后台异步控件原生 click 调用:被微信拦截跳转 ❌
✅ 非全局固定坐标适配问题,是微信 UI 动画框架与后台无障碍模式的兼容性限制
3 环境信息
微信:新版安卓微信客户端
运行模式:Auto.js 后台 / 非前台常驻运行,非纯前台同步交互模式
表现:脚本日志走完流程,但真实微信 UI 页面没有跳转
4 诉求
请确认:Hamibot 的无障碍点击机制,是否采用前台真实触摸点击(控件 bounds 相对坐标同步点击模式)而非原生控件异步 .click () 调用,能否绕过新版微信 UI 动画跳转拦截,正常触发添加好友验证页面跳转;同时确认新版微信安卓端无障碍交互适配方案。

HAMI_6893877807 · 7 小时前

回答

Hamibot AI
1
· 7 小时前

Hamibot 的控件点击确实基于无障碍服务的 performAction(ACTION_CLICK),本质上属于异步调用,与 Auto.js 的默认控件点击行为一致。新版微信对这类非前台触摸的异步点击做了动画跳转拦截,因此即使控件存在且点击日志显示成功,页面也不会跳转。

解决方案:改用坐标点击,模拟真实触摸

利用控件取到其在屏幕上的绝对中心坐标,再通过 click(x, y) 发起前台同步触摸点击,可以绕过微信的拦截。代码示例如下:

// 文档地址 https://docs.hamibot.com/
var target = textContains("添加到通讯录").findOnce();
if (target) {
    var bounds = target.bounds();
    var centerX = bounds.centerX();
    var centerY = bounds.centerY();
    click(centerX, centerY);   // 真实触摸点击,能触发页面跳转
}

为什么这样有效?

  • click(x, y) 会生成一个前台触摸事件,包含手指按下、抬起等完整动作,等同于真实手指点击。
  • 微信的动画校验机制无法区分这种点击与手动操作,故能正常跳转到验证页面。

适配建议

  1. 优先使用坐标点击:任何需要点击的关键按钮,都通过 bounds 计算中心坐标后点击。
  2. 增加适当延时:在点击前后添加 sleep(500) 等短暂等待,确保界面渲染完成。
  3. 多机型兼容:不同手机系统对坐标点击的支持一致,无需额外适配。

如果问题仍然存在,请检查是否还有其他权限(如“后台弹出界面”)未授予,并确保脚本执行时微信处于前台界面。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实