UI 自动化失效排查:无障碍开启但点不动屏幕
症状速查
UI 自动化失效的表现:
- 说「打开微信」但微信没动
- 说「点击保存」但没反应
- 执行完返回成功但实际没做任何事
- 错误提示「无法定位目标元素」
逐步排查
第一步:确认无障碍服务真的开了
别只看 Operit 内部的状态——直接进系统设置确认:
- 系统设置 → 无障碍
- 找到「AI 助手接口服务」(或类似名称)
- 确认开关是ON 状态
- 如果关了 → 重新打开 → 等 Operit 检测到
第二步:测试基础操作
让 Operit 做一个最简单的 UI 自动化:
「回到手机桌面,然后打开设置 App」
如果这都不行,说明无障碍通道本身有问题,不是某个特定应用的问题。
第三步:检查目标应用的 UI 特性
有些应用的界面会给 UI 自动化带来麻烦:
| 特性 | 影响 | 解决 |
|---|---|---|
| Canvas / SurfaceView 绘制 | UI Tree 拿不到元素 | 靠 AutoGLM 视觉路径 |
| WebView 内嵌页面 | UI Tree 只能拿到容器 | 让 Operit 用视觉识别 |
| 全屏广告 / 弹窗遮挡 | 找不到目标元素 | 先让 Operit 关掉弹窗 |
| 深色模式 | 视觉识别可能受影响 | 试浅色模式 |
| 游戏界面 | 几乎全是 Canvas | 纯靠 AutoGLM,精度有限 |
第四步:让 Operit 截图诊断
> 「先截一张当前屏幕图,然后告诉我界面上都有哪些元素」
> 「在这个界面上,帮我找到「保存」按钮在哪,截图里圈出来」
Operit 截图 + UI Tree dump + 视觉分析,能告诉你它看到了什么。如果它说界面上只有一个大容器节点而没有具体按钮——就是 Canvas/WebView 覆盖的问题。
第五步:Hook Runner 有没有拦截
Hook Runner 默认会拦截危险操作,但也可能误伤正常 UI 自动化。在 Operit 设置里临时关掉 Hook Runner,再试一次。
第六步:系统级限制
- Android 11+ 后台启动限制:Operit 需要在前台才能可靠触发 UI 自动化
- 部分 ROM 后台策略:小米 MIUI、华为 EMUI 的后台限制最严
- 锁定屏幕状态:屏幕锁定时 UI 自动化无效(除非用虚拟屏 + Shizuku)
- 省电模式:省电模式会限制无障碍服务的后台活跃度
常见场景解决方案
微信里点不动
微信聊天界面是部分 Canvas 渲染 + 部分原生控件混合——UI Tree 能拿到气泡容器但内部文本元素不全。解决方案:
- 让 Operit 用 AutoGLM 视觉路径辅助定位
- 明确指定「打开第 3 个气泡」而非模糊的「打开那个」
- 失败时让 Operit 截图分析,找正确坐标
浏览器里点不动
现代浏览器(Chrome、Edge、Firefox)几乎全是 WebView 渲染——UI Tree 只能拿到 WebView 容器。解决方案:
- 靠 AutoGLM 视觉路径定位
- 或者用 Operit 的浏览器访问工具(深度检索 Skill)代替直接 UI 自动化操作浏览器
游戏界面点不动
游戏几乎全是 Canvas / SurfaceView —— 纯靠 AutoGLM 视觉,精度有限。建议:
- 只在明确知道点击区域相对位置的情况下用(如固定的按钮)
- 复杂游戏操作不建议用 UI 自动化
重启 Operit 试试
以上步骤都试过还不行?最简单有效的办法:
- 完全杀掉 Operit(从最近任务列表里划掉)
- 重新打开
- 让它做一次简单的 UI 自动化
无障碍服务有时会卡住——重启 Operit 能重置内部状态。