docs: 归档任务 #154
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# 154 兼容不暴露滚动属性的 PDD 规格面板
|
||||
|
||||
- 类型:缺陷
|
||||
- 父级大工单:#1
|
||||
- 所属 MVP / 版本:#2 / Client 可运行任务闭环
|
||||
- 状态:已完成,待用户验收
|
||||
- 日期:2026-08-11
|
||||
- Gitea 工单:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/154>
|
||||
|
||||
## 背景与目标
|
||||
|
||||
Client 采集商品时已经打开“确认款式”面板,但新版自绘面板没有任何
|
||||
`scrollable=true` 节点。原代码把可滚动节点作为规格面板的必要条件,因此持续等待并
|
||||
错误返回 `SKU_PANEL_NOT_FOUND`。
|
||||
|
||||
本任务兼容这种非滚动面板,同时保持严格证据,避免把普通商品页误判为规格面板。
|
||||
|
||||
## 最终方案
|
||||
|
||||
保留原有可滚动面板解析,增加非滚动面板的强证据定位。只有面板提示、已选或请选择
|
||||
摘要、真实规格标题和可点击“确定”入口同时存在,且它们具有小于整个窗口的有界公共
|
||||
父容器时,才认定规格面板已经打开。
|
||||
|
||||
解析时显式排除“确认款式/確認款式”面板标题,防止生成虚假的款式维度;使用第一个
|
||||
真实规格标题顶部作为价格区边界,使面板头部的券后价格可以被读取。若兼容容器内部
|
||||
仍有滚动节点,则继续优先使用原有滚动解析。
|
||||
|
||||
## 改了哪些
|
||||
|
||||
- `client/src/pdd_collect_service.py`:增加非滚动面板定位、标题过滤及价格边界处理。
|
||||
- `client/test/test_pdd_collect_service.py`:增加解析、等待和误判回归测试。
|
||||
- `client/test/fixtures/pdd_spec_panel_non_scrollable.xml`:新增脱敏非滚动面板固件。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 非滚动面板被识别为已打开,不再等待超时 | 通过 |
|
||||
| 只解析颜色和尺码,不把“确认款式”当维度 | 通过 |
|
||||
| 解析出 5 个颜色、1 个尺码和券后价格 | 通过;价格 817 分 |
|
||||
| 普通商品页和全窗口散落文字不被误判 | 通过 |
|
||||
| 原有滚动面板和带数量标题测试保持通过 | 通过 |
|
||||
| 未增加 sleep 或扩大超时时间 | 通过 |
|
||||
| 精确测试、完整测试和语法检查通过 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:`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"`。
|
||||
- 结果:40 项测试通过。
|
||||
- 执行的命令:
|
||||
`C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"`。
|
||||
- 结果:394 项测试通过;只有既存 Qt 字体和弃用警告。
|
||||
- 执行的操作:使用本次失败时保存的真实 XML 调用面板判定和解析函数。
|
||||
- 结果:`panel_open=true`,颜色 5、尺码 1、价格 817 分、已选摘要存在。
|
||||
- **没验证到的部分**:未在真机上重新执行该商品采集;未执行采购或真实下单。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `fee8210` 兼容非滚动 PDD 规格面板
|
||||
Reference in New Issue
Block a user