Files
cmautobuy/docs/task/190-兼容快速购买确认页进入规格选择面板.md
T

3.5 KiB

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

背景与目标

采集任务 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 项为既有版本号断言失败,与本工单无关

测试

  • 执行的命令:
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)