Clone
5
Task 26 PDD spec traversal
QiuSW edited this page 2026-09-21 16:13:32 +08:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

26 修复 PDD 规格面板蛇形遍历与尺码续页

  • 类型:缺陷
  • 所属 Epic:#1
  • 所属 MVP / 版本:#2 采集最小闭环
  • 状态:已完成
  • 日期:2026-08-15~2026-08-17
  • Gitea 工单:#26
  • Wiki 页面:Task-26-PDD-spec-traversal
  • Wiki revision:以页面当前 revision 为准

背景与目标

商品 236231603269 初次采集只得到颜色,没有得到页面实际存在的尺码。后续三星任务 35 又暴露出选中颜色后节点消失、剩余选项重排时错误报告 colorRow:1/2。目标是稳定完成颜色蛇形遍历、逐颜色价格采集和尺码续页,不点击尺码、订单或支付控件。

最终方案

  • 从当前规格节点祖先锁定横向颜色容器和纵向规格面板。
  • 规格面板有界归顶,使用文字与 bounds 视口签名判断边缘。
  • 颜色按视觉行交替方向遍历;每次点击后重新读取无障碍树并等待价格稳定。
  • 尺码只读,首次识别后保存容器结构,标题滚出后继续分页读取。
  • 选中颜色从可点击节点中消失并引起重新排版时,只结束当前行扫描,不再把行消失误报为数据缺失;颜色为空、价格缺失和点击失败仍明确报告。

修改文件

  • android/app/src/main/java/cn/ilapage/goauto/agent/automation/PddProductDetailCollector.kt:规格容器、蛇形遍历、尺码续页和颜色行重排处理。
  • android/app/src/main/java/cn/ilapage/goauto/agent/automation/AndroidUiDriver.kt:规格容器滚动与手势完成等待。
  • android/app/src/test/java/cn/ilapage/goauto/agent/PddProductDetailCollectorTest.kt:长规格、续页和选中项消失重排回归测试。
  • docs/ 与 android/README.md:算法和真机验证证据。

验收结果

验收标准 结果
商品 236231603269 采集实际尺码 通过:14 个颜色、14 个价格、8 个尺码、112 个 SKU
颜色文字安全点击并逐项读取价格 通过
尺码只读,不触发订单或支付 通过
三星颜色选中后重排不再误报 colorRow:* 通过:任务 35 复采只剩 reviewCount
只保存结构化结果 通过
用户验收 2026-08-17 明确通过

测试

  • 执行命令:android/gradlew.bat test assembleDebug
  • 结果:通过,Debug APK 构建成功。
  • 一加任务 23:completed,14 个颜色、8 个尺码、112 个完整 SKU。
  • 三星任务 35:3 个颜色、3 个价格、1 个尺码;颜色行误报消失,reviewCount 按用户决定暂不处理。
  • 未验证部分:三星页面评价数量兼容不属于 #26,保留 completed_partial。

遗留问题

  • 三星任务 35 无障碍数据未提供当前解析器支持的评价数量,用户已确认暂不处理。

相关提交

  • 72d6145 fix: complete PDD spec panel traversal (#26)
  • 1bf676e fix(#26): ignore reflowed completed color rows