Files
cmautobuy/docs/task/155-兼容非滚动面板颜色节点.md
T
2026-08-11 15:13:57 +08:00

62 lines
2.7 KiB
Markdown
Raw Blame History

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.
# #155 Client:兼容非滚动规格面板的颜色节点定位
- 工单号:#155
- 类型:缺陷
- 父级:Epic #1、MVP #2
- 版本:Client 可运行任务闭环
- 状态:待验收
- 日期:2026-08-11
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/155>
## 背景与目标
Client 已能打开并解析新版非滚动规格面板,但采集商品
`897186799891` 时仍提示“规格面板没有可识别的颜色分类”。目标是让颜色
点击节点定位与规格解析使用同一套面板边界,并正确识别该页面的全部颜色。
## 最终方案
1. `_find_option_node()` 继续支持旧版可滚动容器,同时接受位于强证据确认的
非滚动规格面板中的可点击节点。
2. 保留文字精确匹配、有效坐标、最小宽度和屏幕安全边界检查,不对普通页面
增加无条件回退。
3. 实施中发现非滚动面板的按钮宽度按文字长度变化,旧版“最宽按钮 60%”规则
会误删短名称颜色。因此只在强证据确认的非滚动面板中跳过相对宽度过滤;
旧版可滚动面板继续保留该过滤规则。
4. 增加正向和负向回归,分别验证非滚动面板的3行5色结构,以及普通页面的
同名可点击文字不会被当成规格选项。
最终方案与建单方案目标一致;新增的按钮宽度处理来自实施中的第二层根因,已
在 Gitea 工单记录。
## 改了哪些文件
- `client/src/pdd_collect_service.py`:兼容非滚动面板的颜色节点及自适应按钮宽度。
- `client/test/test_pdd_collect_service.py`:增加颜色行识别和普通页面拒绝测试。
## 验收结果
- [x] 脱敏非滚动面板识别为3行、共5个颜色节点。
- [x] 颜色文字、可用状态和点击坐标均被保留。
- [x] 现有可滚动规格面板测试继续通过。
- [x] 普通页面中的同名可点击文字不会被当作规格选项。
- [x] 未增加 sleep 或扩大超时时间。
- [x] 采集服务精确测试、完整 Client 测试和语法检查通过。
- [ ] 用户使用真机重新采集商品 `897186799891` 验收。
## 测试
在 `client/` 目录执行:
```powershell
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"
C:/Python310/python.exe -m py_compile src/pdd_collect_service.py test/test_pdd_collect_service.py
```
结果:采集服务42项通过,Client完整396项通过,语法检查通过。本次真实失败
XML 只读复验得到3行、共5个颜色。
未验证到的部分:未使用真机重新采集商品 `897186799891`;未执行采购、下单
或付款。