Client:修正规格摘要误判颜色标题 #277

Open
opened 2026-08-24 11:29:11 +08:00 by ila · 1 comment
Owner

基本信息

  • 类型:缺陷
  • 父级大工单:#96
  • 所属 MVP / 版本:#253 采购运行时 AI 规格纠偏闭环
  • 阶段:采购规格选择兼容
  • 依赖:#270、#275

要解决什么

采购任务 cg83 选择颜色“紫色誘惑”失败,报错:PURCHASE_OPTIONS_MISMATCH:目标颜色没有完整可见的安全点击位置。

已确认真机控件树中目标“紫色诱惑”完整可见且可点击,繁简比较也成功。根因是颜色标题定位把上方“请选择:颜色”摘要误当成正式标题,计算出的颜色区域停在目标上方,安全点击检查因此过滤了真实目标。

做什么 / 不做什么

做:

  • 仅把独立规格标题识别为颜色标题;
  • 兼容带候选数量的标题,例如“颜色 (4)”和中文括号形式;
  • 排除“请选择”“已选”“选择颜色后”等摘要和提示;
  • 增加脱敏 XML 回归测试。

不做:

  • 不修改繁简转换和精确规格匹配;
  • 不修改颜色滚动策略、尺码选���、地址修改和下单流程;
  • 不增加模糊点击或固定坐标。

已确认的实现方案

  1. 在 client/src/util/select_color_size.py 增加一个简单的标题规范化函数:去除空白和末尾候选数量,只接受 _COLOR_HEADINGS / _PACKAGE_HEADINGS 中的完整标题。
  2. _heading_bounds 使用规范化后的完整标题,不再用“包含任一关键词”的模糊判断。
  3. 在 client/test/test_select_color_size.py 增加本次布局固件,验证“请选择:颜色”被忽略、“颜色 (4)”被选为标题、完整可见的繁简等价目标能够点击。

预计修改文件:

  • client/src/util/select_color_size.py
  • client/test/test_select_color_size.py

验收标准

  • “请选择:颜色”不再作为颜色标题。
  • “颜色 (4)”及中文括号数量形式可以识别为颜色标题。
  • 下发“紫色誘惑”时可以定位并点击完整可见的“紫色诱惑”。
  • 既有颜色、套餐和尺码相关测试通过。
  • 不改变多个候选歧义保护及横向边缘安全点击门禁。

验证方式

从 client/ 执行:

C:/Python310/python.exe -m py_compile src/util/select_color_size.py
C:/Python310/python.exe -m pytest test/test_select_color_size.py test/test_pdd_u2_purchase_adapter.py -q

真机验收:重新执行原失败采购任务,确认能够选中目标颜色;本任务自动测试不执行下单或付款。

风险和回退

风险:标题规则过严可能遗漏未知标题。控制方式是保留当前明确支持的标题集合,只增加末尾数量规范化,不做新的模糊匹配。回退时撤销本工单代码提交即可。

## 基本信息 - 类型:缺陷 - 父级大工单:#96 - 所属 MVP / 版本:#253 采购运行时 AI 规格纠偏闭环 - 阶段:采购规格选择兼容 - 依赖:#270、#275 ## 要解决什么 采购任务 cg83 选择颜色“紫色誘惑”失败,报错:`PURCHASE_OPTIONS_MISMATCH:目标颜色没有完整可见的安全点击位置`。 已确认真机控件树中目标“紫色诱惑”完整可见且可点击,繁简比较也成功。根因是颜色标题定位把上方“请选择:颜色”摘要误当成正式标题,计算出的颜色区域停在目标上方,安全点击检查因此过滤了真实目标。 ## 做什么 / 不做什么 做: - 仅把独立规格标题识别为颜色标题; - 兼容带候选数量的标题,例如“颜色 (4)”和中文括号形式; - 排除“请选择”“已选”“选择颜色后”等摘要和提示; - 增加脱敏 XML 回归测试。 不做: - 不修改繁简转换和精确规格匹配; - 不修改颜色滚动策略、尺码选���、地址修改和下单流程; - 不增加模糊点击或固定坐标。 ## 已确认的实现方案 1. 在 `client/src/util/select_color_size.py` 增加一个简单的标题规范化函数:去除空白和末尾候选数量,只接受 `_COLOR_HEADINGS` / `_PACKAGE_HEADINGS` 中的完整标题。 2. `_heading_bounds` 使用规范化后的完整标题,不再用“包含任一关键词”的模糊判断。 3. 在 `client/test/test_select_color_size.py` 增加本次布局固件,验证“请选择:颜色”被忽略、“颜色 (4)”被选为标题、完整可见的繁简等价目标能够点击。 预计修改文件: - `client/src/util/select_color_size.py` - `client/test/test_select_color_size.py` ## 验收标准 - [ ] “请选择:颜色”不再作为颜色标题。 - [ ] “颜色 (4)”及中文括号数量形式可以识别为颜色标题。 - [ ] 下发“紫色誘惑”时可以定位并点击完整可见的“紫色诱惑”。 - [ ] 既有颜色、套餐和尺码相关测试通过。 - [ ] 不改变多个候选歧义保护及横向边缘安全点击门禁。 ## 验证方式 从 `client/` 执行: ```powershell C:/Python310/python.exe -m py_compile src/util/select_color_size.py C:/Python310/python.exe -m pytest test/test_select_color_size.py test/test_pdd_u2_purchase_adapter.py -q ``` 真机验收:重新执行原失败采购任务,确认能够选中目标颜色;本任务自动测试不执行下单或付款。 ## 风险和回退 风险:标题规则过严可能遗漏未知标题。控制方式是保留当前明确支持的标题集合,只增加末尾数量规范化,不做新的模糊匹配。回退时撤销本工单代码提交即可。
Author
Owner

实现完成,状态:待验收。

根因:颜色标题解析使用关键词包含匹配,把“请选择:颜色”摘要当成正式标题,导致计算区域位于真实“颜色 (4)”标题和目标卡片上方。

实现:

  • 独立规格标题删除空白和末尾候选数量后,与既有标题集合完整匹配;
  • 兼容“颜色 (4)”和“颜色(4)”;
  • 摘要和“选择后”提示不再参与标题定位;
  • 未修改繁简转换、颜色滚动、尺码、地址或下单流程。

验证:

  • C:/Python310/python.exe -m py_compile src/util/select_color_size.py
  • C:/Python310/python.exe -m pytest test/test_select_color_size.py test/test_pdd_u2_purchase_adapter.py -q
  • 结果:89 passed
  • 当前真机控件树只读计算:标题 (36,1416,198,1469),颜色区域 (0,1469,1080,1580),目标安全边界 (36,1495,249,1580)。
  • 未执行点击、完整采购、下单或付款。

提交:

  • 1902935 fix: 修正规格摘要误判颜色标题 (#277)
  • 08a5d8c docs: 归档任务 #277

归档:docs/task/277-修正规格���要误判颜色标题.md

实现完成,状态:待验收。 根因:颜色标题解析使用关键词包含匹配,把“请选择:颜色”摘要当成正式标题,导致计算区域位于真实“颜色 (4)”标题和目标卡片上方。 实现: - 独立规格标题删除空白和末尾候选数量后,与既有标题集合完整匹配; - 兼容“颜色 (4)”和“颜色(4)”; - 摘要和“选择后”提示不再参与标题定位; - 未修改繁简转换、颜色滚动、尺码、地址或下单流程。 验证: - `C:/Python310/python.exe -m py_compile src/util/select_color_size.py` - `C:/Python310/python.exe -m pytest test/test_select_color_size.py test/test_pdd_u2_purchase_adapter.py -q` - 结果:89 passed - 当前真机控件树只读计算:标题 `(36,1416,198,1469)`,颜色区域 `(0,1469,1080,1580)`,目标安全边界 `(36,1495,249,1580)`。 - 未执行点击、完整采购、下单或付款。 提交: - 1902935 `fix: 修正规格摘要误判颜色标题 (#277)` - 08a5d8c `docs: 归档任务 #277` 归档:`docs/task/277-修正规格���要误判颜色标题.md`
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/cmautobuy#277