docs: 元素选择器研究——「点不到按钮」的根因是序号型选择器(附实测证据与解法)
用户反馈任务步骤老是点不到元素,怀疑"执行用的 u2"和"抓取用的 uiautodev"两条 通道不一致。建 research 分支实测,结论与假设相反: 1) **两条通道其实是一致的**:同设备同屏各 dump 一次,节点数 330/330、 id 个数逐项相同 —— 都是同一份 UiAutomation 树,不存在"看到的不一样"。 顺带纠正一处过时注释:uiautodev 的 `rect` 就是像素(`bounds` 才是归一化)。 2) **真凶是序号型选择器**:复现「抖音→我页面」,底部 `0qf` 只有 **3 个** (首页/消息/我 —— 「朋友」tab 是灰度功能,有的账号/设备没有), 而任务里写死 `(…0qf…)[4]` → 第 4 个不存在 → 必然点空。 同一选择器在 4 tab 设备上碰巧对、在 3 tab 设备上必错 —— 这就是"时好时坏"。 3) **解法(实测有效)**:同一 id 多实例时用**文字/描述限定**: `//*[@resource-id="…0qf" and @text="我"]` → 命中并把设备带进我页面(jy- 出现)。 文档里还列了同类限定条件的优先级与四条待排期改动(抓取器优先产语义选择器、 对带序号的选择器加提示、存量任务批量复核、运行期 dump 同 id 实例数)。
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
| [STF_REMOVAL.md](STF_REMOVAL.md) | **历史记录**:摘除 OpenSTF 的迁移过程(阶段 0-3) | 追溯背景时参考 |
|
||||
| [staffdeck/KNOWLEDGE_BASE.md](staffdeck/KNOWLEDGE_BASE.md) | 给 StaffDeck 数字员工的知识库(MCP 接入/工具/约定/红线) | 外部 AI 接入方 |
|
||||
| [staffdeck/JOB_SPEC.md](staffdeck/JOB_SPEC.md) | 数字员工岗位说明(岗位描述/看板摘要/执行约束) | 外部 AI 接入方 |
|
||||
| [research/U2_ELEMENT_SELECTORS.md](research/U2_ELEMENT_SELECTORS.md) | **元素选择器研究**:「点不到按钮」的根因(序号型选择器随界面变形而错位)与语义选择器解法 | 写任务/抓元素的开发 |
|
||||
| [backlog/TODO.md](backlog/TODO.md) | 已确认但暂缓的待办(含已知问题) | 所有开发者 |
|
||||
|
||||
项目根目录的 [README.md](../README.md) 是**项目总览与快速上手**(面向第一次接触项目的人),细节都在本目录。
|
||||
|
||||
Reference in New Issue
Block a user