From 62da4fdef46279572c0a63da6faf645ee2fc1f03 Mon Sep 17 00:00:00 2001 From: chengma Date: Wed, 12 Aug 2026 10:15:47 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#175?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/task/175-兼容提交提示型非滚动规格面板.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 docs/task/175-兼容提交提示型非滚动规格面板.md diff --git a/docs/task/175-兼容提交提示型非滚动规格面板.md b/docs/task/175-兼容提交提示型非滚动规格面板.md new file mode 100644 index 0000000..e6e31a2 --- /dev/null +++ b/docs/task/175-兼容提交提示型非滚动规格面板.md @@ -0,0 +1,68 @@ +# #175 Client:兼容底部提交提示的非滚动规格面板 + +- 工单号:#175 +- 类型:缺陷修复 +- 父级:#1 / #2 +- 版本:Client 可运行任务闭环 +- 状态:待验收 +- 日期:2026-08-12 +- Gitea: + +## 背景与目标 + +采集任务 `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 真机滚动、逐色点击和最终提交数据需要用户验收。