Files
cmautobuy/docs/task/36-商品页就绪后立即进入规格面板.md
T
2026-08-07 18:14:28 +08:00

3.7 KiB

36 商品页就绪后立即进入规格面板

  • 类型:缺陷
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 / MVP
  • 状态:待验收
  • 日期:2026-08-07
  • Gitea 工单:#36

背景与目标

正式采集代码进入商品页后,会先最多检查 13 屏以寻找评价数量。真实任务 COL-6b50a08c86a9e7b9 的无障碍树没有评价节点,因此代码连续滑动后报 PDD_DATA_REVIEWS_MISSING,从未执行已经存在的规格入口点击。

实验脚本 client/src/demo1/auto_v1.py 的有效顺序是:首页加载后立即 dump XML、定位规格入口并点击。本任务把这个顺序正式化,同时保留正式代码需要的结构化错误、超时、诊断文件和面板确认。

最终方案

  • 商品页就绪后只解析当前首页视口,不在打开规格面板前滚动详情页。
  • 标题和已拼数量继续必填;评价与店铺允许留空,并保存首页 XML 证据。
  • 使用同一份首页 XML 计算规格入口并立即点击。
  • 点击后不再使用固定延时假定成功,而是在 10 秒内循环解析规格面板。
  • 只有识别到可滚动规格区域和至少一个规格维度后,才开始颜色、尺码扫描。
  • 面板未出现时返回 PDD_PAGE_SPEC_PANEL_TIMEOUT,向 Admin 映射为 SKU_PANEL_NOT_FOUND,并附最后 XML。
  • 不导入实验脚本,不使用其中的硬编码设备、商品号、当前目录文件或下单按钮代码。

改了哪些

  • client/src/pdd_collect_service.py:移除商品详情预扫描,增加规格面板确认等待。
  • client/src/collect_task_service.py:增加面板超时的稳定上报映射。
  • client/test/test_pdd_collect_service.py:覆盖评价缺失不阻塞、无面板超时和滑动顺序。
  • client/test/test_pdd_real_xml_fixtures.py:验证真实首页 XML 能立即找到底部规格入口。
  • docs/client/01-requirements.md:明确评价、店铺是可选字段。
  • docs/client/02-architecture.md:记录正式采集顺序。

验收结果

验收标准 结果
首页不再为评价连续纵向滑动 通过
评价与店铺为空不阻塞规格采集 通过
当前首页 XML 立即定位并点击规格入口 通过
点击后确认规格面板出现 通过
面板未出现时稳定失败并保存 XML 通过
真实诊断 XML 能找到右下角入口 通过,坐标 (763, 2247)
真机进入规格面板 通过
不加购、不下单、不付款 通过

测试

# client 目录
C:/Python310/python.exe -m unittest discover -s test -p 'test_*.py' -q
C:/Python310/python.exe -m py_compile src/pdd_collect_service.py src/collect_task_service.py
  • Client 全量 153 项测试通过。
  • 真机只读验证设备:192.168.0.173:5555。
  • 真机正式服务成功点击规格入口并进入面板;当前树解析到价格 370 分和 8 个颜色。
  • 真机验证没有点击确认购买、下单或付款,也没有修改本地任务状态或提交 Admin。
  • 没验证到的部分:完整采集随后在颜色采价确认阶段返回 PDD_DATA_PRICE_MISSING,因此没有完成尺码和最终 SKU 结果提交。该错误发生在已经进入规格面板之后,不属于本工单;Admin 最终页面状态未验证。Windows 高对比度和 200% 缩放未手工验证。

遗留问题

规格面板当前 XML 有价格 370 分和 8 个颜色,但 selected_text 为空,导致现有按颜色采价逻辑不能确认选中组合,最终报 PDD_DATA_PRICE_MISSING。应单独分析并建缺陷工单,不能通过取消价格完整性校验掩盖。

相关提交

  • e65cc2a fix: 商品页就绪后立即进入规格面板 (#36)