From 1730c57d5e106d3e587db07a6388ef067577e014 Mon Sep 17 00:00:00 2001 From: chengma Date: Tue, 11 Aug 2026 17:28:44 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#168?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/task/168-兼容纵向套餐标题滑出.md | 65 +++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/task/168-兼容纵向套餐标题滑出.md diff --git a/docs/task/168-兼容纵向套餐标题滑出.md b/docs/task/168-兼容纵向套餐标题滑出.md new file mode 100644 index 0000000..aaaed28 --- /dev/null +++ b/docs/task/168-兼容纵向套餐标题滑出.md @@ -0,0 +1,65 @@ +# #168 Client:兼容纵向套餐标题滑出后的续页采集 + +- 工单号:#168 +- 类型:缺陷 +- 父级:Epic #1、MVP #2 +- 版本:Client 可运行任务闭环 +- 状态:待验收 +- 日期:2026-08-11 +- Gitea: + +## 背景与目标 + +纵向套餐数量较多时,向下滑动会让“套餐”标题离开无障碍控件树。旧流程每一屏 +都依赖可见标题重新识别第二规格,因此错误报告“滚动过程中丢失第二规格”。本任务 +让 Client 在标题消失后仍能安全采集后续套餐。 + +## 最终方案 + +- 首次识别第二规格时,记录其名称、滚动容器的 class、resource-id、坐标范围, + 以及选项的节点结构。 +- 后续页面还能识别标题时使用原解析结果;标题不可见时,在重新定位的同一滚动 + 容器内,只提取结构与首屏选项一致的节点。 +- 第二规格视口签名直接使用已确认的维度,不再要求当前屏幕重复显示标题。 +- 控件树一次缺少续页节点时重新读取一次,持续无法定位才明确报数据不完整。 +- 在第二规格汇总和续页提取时排除价格、数量、提交订单、立即购买等操作控件。 +- 保留原横向套餐、衣服颜色尺码、逐颜色采价和默认尺码取消逻辑。 + +## 改了哪些文件 + +- `client/src/pdd_collect_service.py`:增加第二规格续页上下文、容器重新定位、节点 + 结构匹配、操作按钮过滤和短暂缺失重读。 +- `client/test/test_pdd_collect_service.py`:增加纵向十个套餐、标题滑出、跨页去重、 + 操作按钮排除和不点击选项的测试。 + +## 验收结果 + +- [x] 纵向长套餐在标题滑出屏幕后仍能继续收集后续选项。 +- [x] 所有套餐按页面顺序去重,连续稳定到边后结束。 +- [x] “增加数量”和“提交订单”等操作控件不会混入套餐。 +- [x] 横向套餐、普通衣服尺码、颜色价格及默认尺码取消测试保持通过。 +- [x] 第二规格续页采集过程中不点击套餐或尺码。 +- [x] 未修改数据库、Admin 接口、数据结构和采购安全规则。 +- [x] 精确测试、Client 全量测试和语法检查通过。 +- [ ] 用户使用出现该问题的真机商品完成采集验收。 + +## 测试 + +在 `client/` 目录执行: + +```powershell +C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_collect_service.py" +$env:QT_QPA_PLATFORM="offscreen" +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 +Remove-Item Env:QT_QPA_PLATFORM +``` + +结果:采集服务 61 项、Client 完整 423 项测试通过,语法检查通过。 + +**没验证到的部分**:未使用真机重新采集发生问题的商品;未执行真实采购、下单或 +付款;不同 PDD 版本可能使用不同的套餐节点层级,需由本次真机验收确认。 + +## 相关提交 + +- `94793ab` 兼容套餐标题滑出后的续页采集。