docs: 归档任务 #175

This commit is contained in:
chengma
2026-08-12 10:15:47 +08:00
parent 0f24165ee2
commit 62da4fdef4
@@ -0,0 +1,68 @@
# #175 Client:兼容底部提交提示的非滚动规格面板
- 工单号:#175
- 类型:缺陷修复
- 父级:#1 / #2
- 版本:Client 可运行任务闭环
- 状态:待验收
- 日期:2026-08-12
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/175>
## 背景与目标
采集任务 `cj7` 打开商品规格面板后,Client 仍等待十秒并报告
`SKU_PANEL_NOT_FOUND`。诊断确认这是没有 `scrollable=true` 的全高自绘面板,底部是
“选择规格后提交订单”提示,不是旧兼容逻辑要求的“确定”。目标是识别这种面板,
继续复用现有颜色价格和尺码采集流程,并修正误导性的超时错误。
## 最终方案
1. 保留 #154 的“确认款式/关闭 + 摘要 + 规格标题 + 确定”识别分支。
2. 新增全高非滚动面板分支,必须同时具有可靠 PDD 节点、关闭或确认标题、选择摘要、
独立规格标题、唯一数量输入框、唯一加减按钮和唯一底部提交提示。
3. 以“请选择/已选”开头的摘要不再参与规格标题识别,避免生成错误维度。
4. 从强证据节点寻找最小公共父容器,交给现有 `parse_spec_panel()` 解析,不复制后续
逐色采价和尺码采集实现。
5. 等待过程中如果页面分类已经进入规格确认页,但结构始终不能解析,返回
`PDD_DATA_SPEC_INCOMPLETE`;只有仍未打开面板时才报告加载超时。
6. 从本地失败 XML 提取最小结构,制作不包含真实商品、账号或个人数据的脱敏固件。
最终实现与建单方案一致。
## 改了哪些文件
- `client/src/pdd_collect_service.py`:扩展非滚动面板识别并细分等待失败原因。
- `client/test/test_pdd_collect_service.py`:增加新结构、误判保护和错误分类测试。
- `client/test/fixtures/pdd_spec_panel_submit_hint.xml`:新增脱敏最小回归固件。
- `docs/client/02-architecture.md`:记录两类非滚动面板的稳定识别规则。
实现提交:`0f24165`。
## 验收结果
- [x] 本次失败结构可以识别并解析主规格和第二规格。
- [x] “请选择:颜色分类 尺码”不会成为独立规格维度。
- [x] #154 的“确认款式 + 确定”面板继续通过。
- [x] 普通商品页和孤立提交提示不会被误判。
- [x] 已进入规格页但解析失败时不再误报 `SKU_PANEL_NOT_FOUND`。
- [x] 原始 XML 和真实内容未进入 Git、日志、工单或文档。
- [x] 精确测试、Client 全量测试、语法检查和差异检查通过。
## 测试
从 `client/` 执行:
```powershell
C:/Python310/python.exe -m py_compile src/pdd_collect_service.py
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_collect_service.py"
C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"
```
结果:规格采集精确测试 64 项通过;Client 全量 435 项测试通过;语法检查和
`git diff --check` 通过。
本地只读验证确认最新失败 XML 可识别两个规格维度,摘要没有混入规格标题。原始文件
没有暂存或提交。
**未验证到的部分:**没有连接真机重新采集该商品;没有执行采购、地址修改、下单或
付款。PDD 真机滚动、逐色点击和最终提交数据需要用户验收。