下单按钮判定:以规格面板最底部可点击节点为下单按钮(文字多变,任务570) #335

Open
opened 2026-09-22 14:29:25 +08:00 by ila · 0 comments
Owner

来源与原始需求摘要

2026-09-22,线上任务 570(SYB 260918C3BN2QTM,PDD 商品 8580,设备 8,Agent 0.9.61):规格探测、匹配、选规格、修改地址均成功,返回规格面板后失败 PURCHASE_ADDRESS_SAVE_TIMEOUT“地址保存后无法返回订单页面,未创建订单”。
用户决定(原话):“我从多台android机的pdd app里总结出来的经验,pdd app规格面板的最下面的节点就是下单按钮.你按照我这个策略来判断.” 理由:PDD 规格面板下单按钮文字会不停变化。

当前事实(main 433a254 / 分支 fix/334 e1e6812,2026-09-22)

  • 返回后现场导出(本地 xml_data/after_addr_570.xml,含地址未提交):用 Agent 解析为规格面板 REQUIRED_EVIDENCE(地址/支付/数量输入框均在且同一面板)。
  • 底部可点击容器 FrameLayout [0,2181][1080,2328],内部文字分三段:大促价, / 仅 ¥30.8 / ¥39.9;未选规格前同位置文字为“选择尺码后,提交订单”。
  • PurchaseLiveAutomation.FINAL_SUBMIT_MARKERS = [提交订单, 现在买,仅, 确认购买],按前缀匹配;“大促价,”不匹配 → finalSubmitTargets 为空 → hasFinalSavedAddressEvidence 恒为 false → 超时。
  • 推断(未验证,手机未保留 App 日志):保存后先停在地址列表页,Agent 按返回键回到面板后等待下单按钮超时。

方案(按用户确认的策略)

下单按钮判定改为:已识别的规格面板中,位于最底部的可点击节点即下单按钮,不依赖按钮文字。保留以下最小安全条件(不满足则明确失败、不点击):

  1. 当前页面已被识别为规格面板(沿用 #331 判定),节点属于该面板;
  2. “最底部”指面板内可点击、可用、尺寸非零、最下沿最低的节点;若并列多个(如左右两个按钮)取最右侧,并在诊断中标记“并列”;
  3. 节点自身或子树文字不得包含支付/付款类字样(立即支付、确认支付、去支付、付款、输入支付密码),延续项目“支付文字只作识别信号、不作点击目标”的规则;
  4. 诊断记录:底部节点类、尺寸、是否并列、文字是否含价格(仅布尔,不记录价格外的内容)。
    原 FINAL_SUBMIT_MARKERS 文字匹配仍可作为额外证据记录,但不再是必要条件。

非目标

不改支付(项目不实现付款)、不改规格匹配/选择、地址修改流程、订单结果读取;不使用 OCR/VLM;不保存原始控件树或截图。

子项目影响

Android(PurchaseLiveAutomation 下单按钮与地址返回证据判定,及其调用处)。

验收

  1. 单测(脱敏样本):570 现场结构 → 识别出底部整行按钮为唯一下单目标;“提交订单”旧样本仍识别;左右双按钮 → 取最右并标记并列;底部节点含支付字样 → 失败不点;非规格面板 → 不判定。
  2. 地址保存返回后,面板识别 + 底部按钮存在即满足地址证据,不再因文字超时。
  3. Android 全量单测通过。
  4. 真机验证(需单独授权,会创建待付款订单,不付款):8580 用促销文案按钮完成一次下单并确认只生成待付款订单。

风险

直接决定“创建订单”点击目标,最高风险;方案为用户明确决定。实施、真机下单与发布均需人工确认。回退:恢复文字匹配判定。

文档影响

更新业务规则(下单按钮判定规则)与架构页。

## 来源与原始需求摘要 2026-09-22,线上任务 570(SYB `260918C3BN2QTM`,PDD 商品 8580,设备 8,Agent 0.9.61):规格探测、匹配、选规格、修改地址均成功,返回规格面板后失败 `PURCHASE_ADDRESS_SAVE_TIMEOUT`“地址保存后无法返回订单页面,未创建订单”。 用户决定(原话):“我从多台android机的pdd app里总结出来的经验,pdd app规格面板的最下面的节点就是下单按钮.你按照我这个策略来判断.” 理由:PDD 规格面板下单按钮文字会不停变化。 ## 当前事实(main 433a254 / 分支 fix/334 e1e6812,2026-09-22) - 返回后现场导出(本地 `xml_data/after_addr_570.xml`,含地址未提交):用 Agent 解析为规格面板 `REQUIRED_EVIDENCE`(地址/支付/数量输入框均在且同一面板)。 - 底部可点击容器 `FrameLayout [0,2181][1080,2328]`,内部文字分三段:`大促价,` / `仅 ¥30.8` / `¥39.9`;未选规格前同位置文字为“选择尺码后,提交订单”。 - `PurchaseLiveAutomation.FINAL_SUBMIT_MARKERS = [提交订单, 现在买,仅, 确认购买]`,按前缀匹配;“大促价,”不匹配 → `finalSubmitTargets` 为空 → `hasFinalSavedAddressEvidence` 恒为 false → 超时。 - 推断(未验证,手机未保留 App 日志):保存后先停在地址列表页,Agent 按返回键回到面板后等待下单按钮超时。 ## 方案(按用户确认的策略) 下单按钮判定改为:**已识别的规格面板中,位于最底部的可点击节点**即下单按钮,不依赖按钮文字。保留以下最小安全条件(不满足则明确失败、不点击): 1. 当前页面已被识别为规格面板(沿用 #331 判定),节点属于该面板; 2. “最底部”指面板内可点击、可用、尺寸非零、最下沿最低的节点;若并列多个(如左右两个按钮)取最右侧,并在诊断中标记“并列”; 3. 节点自身或子树文字不得包含支付/付款类字样(立即支付、确认支付、去支付、付款、输入支付密码),延续项目“支付文字只作识别信号、不作点击目标”的规则; 4. 诊断记录:底部节点类、尺寸、是否并列、文字是否含价格(仅布尔,不记录价格外的内容)。 原 `FINAL_SUBMIT_MARKERS` 文字匹配仍可作为额外证据记录,但不再是必要条件。 ## 非目标 不改支付(项目不实现付款)、不改规格匹配/选择、地址修改流程、订单结果读取;不使用 OCR/VLM;不保存原始控件树或截图。 ## 子项目影响 Android(`PurchaseLiveAutomation` 下单按钮与地址返回证据判定,及其调用处)。 ## 验收 1. 单测(脱敏样本):570 现场结构 → 识别出底部整行按钮为唯一下单目标;“提交订单”旧样本仍识别;左右双按钮 → 取最右并标记并列;底部节点含支付字样 → 失败不点;非规格面板 → 不判定。 2. 地址保存返回后,面板识别 + 底部按钮存在即满足地址证据,不再因文字超时。 3. Android 全量单测通过。 4. 真机验证(需单独授权,会创建待付款订单,不付款):8580 用促销文案按钮完成一次下单并确认只生成待付款订单。 ## 风险 直接决定“创建订单”点击目标,最高风险;方案为用户明确决定。实施、真机下单与发布均需人工确认。回退:恢复文字匹配判定。 ## 文档影响 更新业务规则(下单按钮判定规则)与架构页。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#335