Files
cmautobuy/docs/task/268-兼容无维度名摘要的纵向颜色列表归位.md
T
2026-08-18 14:43:12 +08:00

3.2 KiB
Raw Blame History

#268 Client:兼容无维度名摘要的纵向颜色列表归位

背景与目标

采购目标颜色为繁体 寵粉誘惑-E01【一件】,PDD 控件树显示简体规格。现有繁简归一化能够得到同一比较键,但规格面板记住了纵向颜色列表中部位置,只显示 E09~E16;“已选”摘要不包含“颜色分类”维度名,导致 Client 没有把列表归位到包含 E01 的顶部,最终误报目标不可见。

最终方案

  • 保留现有 Windows LCMapStringEx 繁简归一化和唯一候选规则,不修改目标原文。
  • “已选”摘要包含颜色维度名时继续使用原归位规则。
  • 摘要不包含维度名时,只有以下结构证据全部成立才允许归位:
    • 当前存在第二规格标题;
    • 规格面板只有一个可靠的纵向滚动容器;
    • 第二规格标题位于该容器内;
    • 标题上方至少存在两个完整、可见、可点击且不是操作控件的规格卡片。
  • 证据成立后复用既有有界向顶部滑动,看到正式颜色标题和可靠颜色选项即停止。
  • 归位后继续用精确或唯一繁简等价规则匹配目标颜色;不按编号或近似文字猜测。
  • 单规格、候选不足、多个滚动容器或无法到达颜色标题时安全停止。

改了哪些文件

  • client/src/pdd_u2_purchase_adapter.py
  • client/test/test_pdd_u2_purchase_adapter.py
  • docs/client/06-quality-security.md

实现提交:ad9f4e6

验收结果

  • 繁体任务颜色和简体 PDD 颜色继续按唯一繁简等价规则匹配。
  • 无维度名摘要、纵向列表停在中部时可以用强结构证据触发归位。
  • 归位后只点击唯一的简体 E01 卡片并确认选中。
  • 单规格尺码面板不会被误判为颜色列表。
  • 标题上方只有一个候选或存在多个滚动容器时不会触发归位。
  • 归位和查找均有次数上限,不循环滑动或猜测点击。
  • 当前真实设备控件树只读判定结果为 RESTORE_REQUIRED=True,未执行滑动或点击。

测试

在 client/ 目录执行:

C:/Python310/python.exe -m py_compile src/pdd_u2_purchase_adapter.py
C:/Python310/python.exe -m pytest -q test/test_pdd_u2_purchase_adapter.py test/test_select_color_size.py
C:/Python310/python.exe -m pytest -q test
$env:QT_QPA_PLATFORM="offscreen"
C:/Python310/python.exe -c "from src.ui_main import MainWindow; from PyQt5.QtWidgets import QApplication; app=QApplication([]); w=MainWindow(); print('OK'); app.quit()"
Remove-Item Env:QT_QPA_PLATFORM

结果:

  • 语法检查通过。
  • 定向测试 83 项全部通过。
  • Client 全量测试 532 项通过、2 项失败;失败是工作区现有 src/version.py 为 0.1.2,两项旧测试仍期待 0.1.0,与本任务无关。
  • 离屏 UI 冒烟打印 OK。

未验证到的部分:未在真实 Android 设备执行颜色列表归位或点击 E01;未执行真实规格选择、提交订单或付款。