兼容快速购买确认页进入规格选择面板 #190

Closed
opened 2026-08-12 17:24:59 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:缺陷
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 Client 可运行任务闭环
  • 阶段:PDD 规格面板兼容

要解决什么

采集任务 cj14(商品 620028041597)点击规格入口后进入带收货、优惠、支付、数量和“现在买”按钮的快速购买确认页。该页显示当前已选款式和尺码,但不是现有解析器支持的传统规格选择面板。Client 连续读取控件树后报 PDD_DATA_SPEC_INCOMPLETE:规格面板已经打开,但页面结构无法识别。

复现步骤:领取或重新采集 cj14,打开商品页并点击规格入口;PDD 进入快速确认页;等待规格面板识别超时后任务失败。

做什么 / 不做什么

  • 做:增加快速确认页的强证据识别;只点击当前主规格值以打开真正的规格选择区域;恢复成功后完全复用现有规格面板解析、颜色价格和尺码采集流程;增加脱敏固件与回归测试。
  • 不做:不修改原有正常规格面板的解析、逐色采价和尺码遍历逻辑;不把快速确���页当前已选值当成完整 SKU;不点击“现在买”、支付或其他不可逆按钮;不改数据库和 Admin 接口。

怎么做

  1. 在 client/src/pdd_collect_service.py 增加快速确认页识别与当前主规格点击目标定位函数,要求同时满足确认页分类、关闭入口、已选摘要、独立规格标题、数量控件和购买确认区等强证据。
  2. _wait_spec_panel() 保持原面板优先;只有识别到快速确认页时执行一次恢复,点击“款式/颜色”等主规格标题下的当前可点击值,随后继续等待并把成功结果交回原采集流程。
  3. 恢复过程设置一次性门禁和有界等待,禁止点击“现在买”;恢复失败继续返回明确的结构不兼容错误。
  4. 从 cj14 本地失败 XML 提取不含个人数据和真实商品内容的最小脱敏固件,在 client/test/test_pdd_collect_service.py 验证识别、点击安全边界和原有面板回归。

预计修改:

  • client/src/pdd_collect_service.py
  • client/test/test_pdd_collect_service.py
  • client/test/fixtures/ 下新增脱敏 XML 固件

验收标准

  • 原有滚动、非滚动和提交提示型规格面板继续直接进入原采集流程。
  • cj14 类型的快速确认页能够被强证据识别,并只点击当前主规格值一次。
  • 点击后出现正常规格面板时,继续复用原颜色价格和尺码采集流程。
  • 快速确认页不会被当成只有一个 SKU 的完整规格面板。
  • 采集兼容分支绝不点击“现在买”、支付或提交订单按钮。
  • 未满足强证据或恢复后仍无规格面板时安全失败,不无限重试。
  • 精确测试、Client 全量测试、语法检查和差异检查通过。

怎么验证

从 client/ 执行:

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"
$env:QT_QPA_PLATFORM="offscreen"
C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"
Remove-Item Env:QT_QPA_PLATFORM

需要真机重新采集 cj14,确认快速确认页只打开规格选择区域且最终采集完整颜色价格和尺码。

风险和回退

风险是把普通订单确认页误认为可恢复规格页,或误点底部购买按钮。实现必须使用组合证据定位主规格值,并显式排除购买、提交、支付等动作。出现回归时可独立回退本工单提交,原规格���析流程不受影响。

## 基本信息 - 类型:缺陷 - 父级大工单:#1 - 所属 MVP / 版本:#2 Client 可运行任务闭环 - 阶段:PDD 规格面板兼容 ## 要解决什么 采集任务 cj14(商品 620028041597)点击规格入口后进入带收货、优惠、支付、数量和“现在买”按钮的快速购买确认页。该页显示当前已选款式和尺码,但不是现有解析器支持的传统规格选择面板。Client 连续读取控件树后报 `PDD_DATA_SPEC_INCOMPLETE:规格面板已经打开,但页面结构无法识别`。 复现步骤:领取或重新采集 cj14,打开商品页并点击规格入口;PDD 进入快速确认页;等待规格面板识别超时后任务失败。 ## 做什么 / 不做什么 - 做:增加快速确认页的强证据识别;只点击当前主规格值以打开真正的规格选择区域;恢复成功后完全复用现有规格面板解析、颜色价格和尺码采集流程;增加脱敏固件与回归测试。 - 不做:不修改原有正常规格面板的解析、逐色采价和尺码遍历逻辑;不把快速确���页当前已选值当成完整 SKU;不点击“现在买”、支付或其他不可逆按钮;不改数据库和 Admin 接口。 ## 怎么做 1. 在 `client/src/pdd_collect_service.py` 增加快速确认页识别与当前主规格点击目标定位函数,要求同时满足确认页分类、关闭入口、已选摘要、独立规格标题、数量控件和购买确认区等强证据。 2. `_wait_spec_panel()` 保持原面板优先;只有识别到快速确认页时执行一次恢复,点击“款式/颜色”等主规格标题下的当前可点击值,随后继续等待并把成功结果交回原采集流程。 3. 恢复过程设置一次性门禁和有界等待,禁止点击“现在买”;恢复失败继续返回明确的结构不兼容错误。 4. 从 cj14 本地失败 XML 提取不含个人数据和真实商品内容的最小脱敏固件,在 `client/test/test_pdd_collect_service.py` 验证识别、点击安全边界和原有面板回归。 预计修改: - `client/src/pdd_collect_service.py` - `client/test/test_pdd_collect_service.py` - `client/test/fixtures/` 下新增脱敏 XML 固件 ## 验收标准 - [x] 原有滚动、非滚动和提交提示型规格面板继续直接进入原采集流程。 - [x] cj14 类型的快速确认页能够被强证据识别,并只点击当前主规格值一次。 - [x] 点击后出现正常规格面板时,继续复用原颜色价格和尺码采集流程。 - [x] 快速确认页不会被当成只有一个 SKU 的完整规格面板。 - [x] 采集兼容分支绝不点击“现在买”、支付或提交订单按钮。 - [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" $env:QT_QPA_PLATFORM="offscreen" C:/Python310/python.exe -m unittest discover -s test -p "test_*.py" Remove-Item Env:QT_QPA_PLATFORM ``` 需要真机重新采集 cj14,确认快速确认页只打开规格选择区域且最终采集完整颜色价格和尺码。 ## 风险和回退 风险是把普通订单确认页误认为可恢复规格页,或误点底部购买按钮。实现必须使用组合证据定位主规格值,并显式排除购买、提交、支付等动作。出现回归时可独立回退本工单提交,原规格���析流程不受影响。
Author
Owner

实施进度

已完成兼容实现和首轮回归:

  • 新增快速确认页强证据识别,只定位“款式/颜色”等主规格标题下的当前可点击值;
  • _wait_spec_panel() 仅在原规格解析失败且强证据成立时恢复一次,恢复后继续复用原解析流程;
  • 显式排除“现在买”、提交、支付和数量按钮;
  • 新增不含真实商品和个人数据的脱敏最小固件及回归测试;
  • cj14 本机原始失败 XML 只读验证能够定位主规格值,未执行真机点击。

验证:规格采集专项 71 项通过;Client 全量 467 项中 465 项通过。另 2 项失败是工作区已有 src/version.py=0.1.2,而既有更新测试仍固定期待 0.1.0,与 #190 无关,本工单不修改该用户改动。

## 实施进度 已完成兼容实现和首轮回归: - 新增快速确认页强证据识别,只定位“款式/颜色”等主规格标题下的当前可点击值; - `_wait_spec_panel()` 仅在原规格解析失败且强证据成立时恢复一次,恢复后继续复用原解析流程; - 显式排除“现在买”、提交、支付和数量按钮; - 新增不含真实商品和个人数据的脱敏最小固件及回归测试; - cj14 本机原始失败 XML 只读验证能够定位主规格值,未执行真机点击。 验证:规格采集专项 71 项通过;Client 全量 467 项中 465 项通过。另 2 项失败是工作区已有 `src/version.py=0.1.2`,而既有更新测试仍固定期待 `0.1.0`,与 #190 无关,本工单不修改该用户改动。
Author
Owner

完成记录(待用户验收)

实现已完成并提交:

  • 实现提交:9109b88 fix: 兼容快速确认页进入规格面板 (#190)
  • 归档提交:0251122 docs: 归档任务 #190
  • 本地归档:docs/task/190-兼容快速购买确认页进入规格选择面板.md

验证结果:规格采集专项 71 项通过,语法检查和 git diff --check 通过;Client 全量 467 项中 465 项通过。另 2 项仍是用户工作区已有版本号 0.1.2 与旧更新测试固定期待 0.1.0 的既有失败,没有修改或混入 #190。cj14 原始失败 XML 只在本机做了只读定位验证,没有提交 Git。

当前状态:待用户使用真机重新采集 cj14,确认点击当前款式后能进入完整规格选择区域,并完成颜色价格、尺码和 Admin 提交闭环。工单保持打开,父工单清单保持未验收。

## 完成记录(待用户验收) 实现已完成并提交: - 实现提交:`9109b88` `fix: 兼容快速确认页进入规格面板 (#190)` - 归档提交:`0251122` `docs: 归档任务 #190` - 本地归档:`docs/task/190-兼容快速购买确认页进入规格选择面板.md` 验证结果:规格采集专项 71 项通过,语法检查和 `git diff --check` 通过;Client 全量 467 项中 465 项通过。另 2 项仍是用户工作区已有版本号 `0.1.2` 与旧更新测试固定期待 `0.1.0` 的既有失败,没有修改或混入 #190。cj14 原始失败 XML 只在本机做了只读定位验证,没有提交 Git。 当前状态:待用户使用真机重新采集 cj14,确认点击当前款式后能进入完整规格选择区域,并完成颜色价格、尺码和 Admin 提交闭环。工单保持打开,父工单清单保持未验收。
Author
Owner

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:ad44f83。现关闭工单。

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:`ad44f83`。现关闭工单。
ila closed this issue 2026-08-13 15:58:57 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#190