Files
cmautobuy/docs/task/276-合并近重叠地址入口候选.md
T
2026-08-18 17:43:22 +08:00

2.1 KiB

276 合并近重叠地址入口候选

  • 类型:缺陷
  • 父级大工单:#96
  • 所属 MVP / 版本:#253 采购运行时 AI 规格纠偏闭环
  • 状态:待验收
  • 日期:2026-08-18
  • Gitea 工单:#276

背景与目标

采购已正确选中颜色和尺码,但同一收货地址卡片在无障碍控件树中出现两个边界仅相差 1 像素的可点击祖先。旧逻辑按完整坐标去重后仍得到两个候选,因此误报 PURCHASE_ADDRESS_ENTRY_AMBIGUOUS。

目标是只合并同一卡片产生的近重叠重复节点,同时保留多个真实地址入口的歧义保护。

最终方案

地址入口候选增加严格的几何合并:两个候选的中心坐标每轴相差不超过 3 像素,并且交集覆盖较小候选至少 98% 时,才视为同一卡片。合并后使用所有重复节点的共同交集作为安全点击区域。

同一组内的新候选必须与组内每个已有候选都满足条件,避免通过连续的小偏移把不同卡片间接合并。位置明显不同的候选仍保留为多个结果,继续触发原有歧义中断。

改了哪些文件

  • client/src/pdd_u2_purchase_adapter.py:增加地址候选近重叠判断和严格分组合并。
  • client/test/test_pdd_u2_purchase_adapter.py:覆盖 1 像素重复节点合并和真实分离卡片不合并。

验收结果

验收标准 结果
同一地址卡片的 1 像素边界差异合并为一个候选 通过
合并后的点击区域同时位于原候选内部 通过
两个位置明显不同的地址卡片仍保留为两个候选 通过
采购适配器原有行为通过回归测试 通过

测试

  • 执行的命令:C:/Python310/python.exe -m py_compile src/pdd_u2_purchase_adapter.py
  • 执行的命令:C:/Python310/python.exe -m pytest test/test_pdd_u2_purchase_adapter.py -q
  • 结果:72 passed。
  • 没验证到的部分:尚未用原失败任务重新执行完整真机采购;未执行下单或付款。

相关提交

  • 7c56c29 fix: 合并近重叠地址入口候选 (#276)