# 276 合并近重叠地址入口候选 - 类型:缺陷 - 父级大工单:#96 - 所属 MVP / 版本:#253 采购运行时 AI 规格纠偏闭环 - 状态:待验收 - 日期:2026-08-18 - Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/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)`