# 190 兼容快速购买确认页进入规格选择面板 - 类型:缺陷 - 父级大工单:#1 - 所属 MVP / 版本:#2 Client 可运行任务闭环 - 状态:已完成,用户验收通过 - 日期:2026-08-12 - Gitea 工单: ## 背景与目标 采集任务 cj14 点击规格入口后进入带数量、支付方式和“现在买”按钮的快速确认页。 页面只有当前已选款式和尺码,不是完整规格选择面板,原采集器等待后报告页面结构 无法识别。目标是在不改变原规格解析、逐色采价和尺码采集流程的前提下,从该页面 安全打开真正的规格选择区域。 ## 最终方案 - 原有规格面板仍优先交给原解析流程,不增加额外点击。 - 只有页面同时具备 PDD 控件、关闭入口、已选摘要、支付区域、唯一数量控件、底部 “现在买”和独立主规格标题等强证据时,才识别为可恢复的快速确认页。 - 只定位主规格标题下方、下一规格标题上方的可点击当前值,并显式排除购买、提交、 支付、数量和关闭控件。 - 每次等待最多恢复一次。点击后重新读取控件树,成功时继续复用原颜色价格和尺码 采集流程;失败时返回明确错误,不循环点击。 - 快速确认页本身仍不能被当作只有一个 SKU 的完整规格面板。 最终实现与建单方案一致。 ## 改了哪些 - `client/src/pdd_collect_service.py`:增加快速确认页识别、主规格安全定位和一次性恢复。 - `client/test/test_pdd_collect_service.py`:增加成功恢复、单次重试、证据不足不点击和原 面板不增加点击的测试。 - `client/test/fixtures/pdd_quick_confirmation.xml`:增加不含真实商品和个人数据的脱敏 最小固件。 ## 验收结果 | 验收标准 | 结果 | |---|---| | 原有滚动、非滚动面板继续走原流程 | 通过 | | 快速确认页只点击当前主规格值一次 | 通过 | | 恢复后复用原规格解析流程 | 通过 | | 快速确认页不作为完整 SKU 面板 | 通过 | | 不点击“现在买”、支付或提交按钮 | 通过 | | 证据不足或恢复失败时安全结束 | 通过 | | 语法、差异和规格采集专项测试通过 | 通过 | | Client 全量测试全部通过 | 未通过:467 项中 2 项为既有版本号断言失败,与本工单无关 | ## 测试 - 执行的命令: ```powershell C:/Python310/python.exe -m py_compile src/pdd_collect_service.py test/test_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 git diff --check ``` - 结果:规格采集专项 71 项全部通过,语法检查和差异检查通过。Client 全量运行 467 项,465 项通过;2 项失败是工作区已有 `src/version.py` 为 `0.1.2`,而既有更新测试 固定期待 `0.1.0`,本工单未修改该用户改动。使用 cj14 本机失败 XML 只读验证, 能稳定定位主规格值且不会定位底部购买按钮。 - **没验证到的部分**:未连接真机重新采集 cj14;点击当前主规格后 PDD 是否稳定打开 完整规格选择区域,以及最终颜色价格、尺码和 Admin 提交闭环,需要用户真机验收。 ## 相关提交 - `9109b88` fix: 兼容快速确认页进入规格面板 (#190)