docs: 归档任务 #36

This commit is contained in:
chengma
2026-08-07 18:14:28 +08:00
parent e65cc2afda
commit e08fd89c91
@@ -0,0 +1,68 @@
# 36 商品页就绪后立即进入规格面板
- 类型:缺陷
- 父级大工单:#1
- 所属 MVP / 版本:#2 / MVP
- 状态:待验收
- 日期:2026-08-07
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/36
## 背景与目标
正式采集代码进入商品页后,会先最多检查 13 屏以寻找评价数量。真实任务 `COL-6b50a08c86a9e7b9` 的无障碍树没有评价节点,因此代码连续滑动后报 `PDD_DATA_REVIEWS_MISSING`,从未执行已经存在的规格入口点击。
实验脚本 `client/src/demo1/auto_v1.py` 的有效顺序是:首页加载后立即 dump XML、定位规格入口并点击。本任务把这个顺序正式化,同时保留正式代码需要的结构化错误、超时、诊断文件和面板确认。
## 最终方案
- 商品页就绪后只解析当前首页视口,不在打开规格面板前滚动详情页。
- 标题和已拼数量继续必填;评价与店铺允许留空,并保存首页 XML 证据。
- 使用同一份首页 XML 计算规格入口并立即点击。
- 点击后不再使用固定延时假定成功,而是在 10 秒内循环解析规格面板。
- 只有识别到可滚动规格区域和至少一个规格维度后,才开始颜色、尺码扫描。
- 面板未出现时返回 `PDD_PAGE_SPEC_PANEL_TIMEOUT`,向 Admin 映射为 `SKU_PANEL_NOT_FOUND`,并附最后 XML。
- 不导入实验脚本,不使用其中的硬编码设备、商品号、当前目录文件或下单按钮代码。
## 改了哪些
- `client/src/pdd_collect_service.py`:移除商品详情预扫描,增加规格面板确认等待。
- `client/src/collect_task_service.py`:增加面板超时的稳定上报映射。
- `client/test/test_pdd_collect_service.py`:覆盖评价缺失不阻塞、无面板超时和滑动顺序。
- `client/test/test_pdd_real_xml_fixtures.py`:验证真实首页 XML 能立即找到底部规格入口。
- `docs/client/01-requirements.md`:明确评价、店铺是可选字段。
- `docs/client/02-architecture.md`:记录正式采集顺序。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 首页不再为评价连续纵向滑动 | 通过 |
| 评价与店铺为空不阻塞规格采集 | 通过 |
| 当前首页 XML 立即定位并点击规格入口 | 通过 |
| 点击后确认规格面板出现 | 通过 |
| 面板未出现时稳定失败并保存 XML | 通过 |
| 真实诊断 XML 能找到右下角入口 | 通过,坐标 `(763, 2247)` |
| 真机进入规格面板 | 通过 |
| 不加购、不下单、不付款 | 通过 |
## 测试
```powershell
# client 目录
C:/Python310/python.exe -m unittest discover -s test -p 'test_*.py' -q
C:/Python310/python.exe -m py_compile src/pdd_collect_service.py src/collect_task_service.py
```
- Client 全量 153 项测试通过。
- 真机只读验证设备:`192.168.0.173:5555`。
- 真机正式服务成功点击规格入口并进入面板;当前树解析到价格 370 分和 8 个颜色。
- 真机验证没有点击确认购买、下单或付款,也没有修改本地任务状态或提交 Admin。
- **没验证到的部分**:完整采集随后在颜色采价确认阶段返回 `PDD_DATA_PRICE_MISSING`,因此没有完成尺码和最终 SKU 结果提交。该错误发生在已经进入规格面板之后,不属于本工单;Admin 最终页面状态未验证。Windows 高对比度和 200% 缩放未手工验证。
## 遗留问题
规格面板当前 XML 有价格 370 分和 8 个颜色,但 `selected_text` 为空,导致现有按颜色采价逻辑不能确认选中组合,最终报 `PDD_DATA_PRICE_MISSING`。应单独分析并建缺陷工单,不能通过取消价格完整性校验掩盖。
## 相关提交
- `e65cc2a` `fix: 商品页就绪后立即进入规格面板 (#36)`