Client:采购规格面板选择颜色前先归位到顶部 #230

Open
opened 2026-08-14 18:06:13 +08:00 by ila · 1 comment
Owner

基本信息

  • 类型:缺陷
  • 父级大工单:#1
  • 所属 MVP / 版本:#2
  • 阶段:采购规格面板纵向位置兼容

要解决什么

采购任务进入 PDD 商品规格面板时,PDD 可能保留面板上一次的纵向滚动位置。采购编号 cg31 的现场页面已经显示尺码区域,但正式“颜色分类”标题滑出可视区域。当前采购流程只确认规格面板和数量控件存在,随后直接执行颜色横向扫描,不会先把规格内容滚回顶部,可能找不到目标颜色或在错误区域滑动。

同时,页面顶部的“请选择: 颜色分类”等摘要可能被模糊匹配为正式颜色标题,需要明确排除。

做什么 / 不做什么

  • 做:采购规格面板打开后,先确认正式颜色标题及颜色区域是否可见;不可见时在可靠的规格滚动容器内有界滚回顶部。
  • 做:每次归位滑动后重新读取控件树;正式颜色标题出现或连续页面签名不变时停止。
  • 做:排除“请选择”“已选”“选择……后提交”等摘要,避免误当正式颜色标题。
  • 做:归位成功后继续调用现有颜色横向选择和尺码向下选择逻辑。
  • 做:增加脱敏测试固件,覆盖面板初始停在中部、已经在顶部、无法可靠归位三种情况。
  • 不做:不修改采集颜色价格/尺码逻辑,不修改 Admin、SQLite、任务状态、地址规则、最终提交和不可逆门禁;不付款。

怎么做

  • 在 client/src/pdd_u2_purchase_adapter.py 增加采购专用的颜色区域归位辅助函数。
  • 正式颜色标题只接受独立维度标题,例如“颜色分类”“颜色”“款式”“花色”及可选的数量后缀;明确拒绝选择摘要。
  • 从当前规格面板中定位唯一可靠的纵向滚动容器,使用手指向下滑让内容返回顶部。
  • 每次滑动后等待短暂动作时间并重新读取 XML;最多执行有限次数,连续两次可见结构签名不变时停止。
  • 找到正式颜色区域后调用原 select_color;找不到时抛出稳定错误 PURCHASE_PANEL_COLOR_REGION_NOT_FOUND,不点击未知目标。
  • 在 client/test/test_pdd_u2_purchase_adapter.py 使用 Fake Device 覆盖归位及不归位路径。
  • 预计修改:
    • client/src/pdd_u2_purchase_adapter.py
    • client/test/test_pdd_u2_purchase_adapter.py
    • 必要的脱敏 XML 测试固件

验收标准

  • 规格面板已在颜色区域顶部时不执行纵向滑动。
  • 初始停在尺码区域时,能够有界滚回正式颜色标题和颜色选项所在区域。
  • “请选择: 颜色分类”“已选”“选择颜色分类后提交订单”等摘要不作为正式颜色标题。
  • 归位后复用原颜色左右扫描、精确点击和选中确认逻辑。
  • 连续两次结构不变或达到上限时停止,不无限滑动、不点击未知区域。
  • 无法定位可靠滚动容器或无法回到颜色区域时返回明确错误,且不进入地址、提交或不可逆阶段。
  • 正常衣服、图片颜色、非滚动规格面板及尺码选择回归不受影响。
  • 采购 Adapter 专项和 Client 回归测试通过。

怎么验证

从 client/ 执行:

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 --disable-warnings
C:/Python310/python.exe -m pytest test -q --disable-warnings

真机验收:使用尚未进入不可逆阶段的 cg31 或新采购任务,确认规格面板初始停在中部时先回到颜色区域,再选择目标颜色和尺码;出现未知页面立即停止,不付款。

风险和回退

  • 风险:错误选择滚动容器可能操作商品页或关闭面板;只允许在已确认规格面板内使用唯一可靠的 PDD 纵向容器。
  • 风险:无条件归位会拖慢正常商品;已在颜���区域时不滑动。
  • 风险:新增归位属于真实采购下单前步骤;自动测试只使用 Fake Device,不连接真机、不创建订单。
  • 回退:移除采购专用归位调用,恢复原颜色选择入口;原规格精确匹配、地址和不可逆安全门禁保持。
## 基本信息 - 类型:缺陷 - 父级大工单:#1 - 所属 MVP / 版本:#2 - 阶段:采购规格面板纵向位置兼容 ## 要解决什么 采购任务进入 PDD 商品规格面板时,PDD 可能保留面板上一次的纵向滚动位置。采购编号 cg31 的现场页面已经显示尺码区域,但正式“颜色分类”标题滑出可视区域。当前采购流程只确认规格面板和数量控件存在,随后直接执行颜色横向扫描,不会先把规格内容滚回顶部,可能找不到目标颜色或在错误区域滑动。 同时,页面顶部的“请选择: 颜色分类”等摘要可能被模糊匹配为正式颜色标题,需要明确排除。 ## 做什么 / 不做什么 - 做:采购规格面板打开后,先确认正式颜色标题及颜色区域是否可见;不可见时在可靠的规格滚动容器内有界滚回顶部。 - 做:每次归位滑动后重新读取控件树;正式颜色标题出现或连续页面签名不变时停止。 - 做:排除“请选择”“已选”“选择……后提交”等摘要,避免误当正式颜色标题。 - 做:归位成功后继续调用现有颜色横向选择和尺码向下选择逻辑。 - 做:增加脱敏测试固件,覆盖面板初始停在中部、已经在顶部、无法可靠归位三种情况。 - 不做:不修改采集颜色价格/尺码逻辑,不修改 Admin、SQLite、任务状态、地址规则、最终提交和不可逆门禁;不付款。 ## 怎么做 - 在 `client/src/pdd_u2_purchase_adapter.py` 增加采购专用的颜色区域归位辅助函数。 - 正式颜色标题只接受独立维度标题,例如“颜色分类”“颜色”“款式”“花色”及可选的数量后缀;明确拒绝选择摘要。 - 从当前规格面板中定位唯一可靠的纵向滚动容器,使用手指向下滑让内容返回顶部。 - 每次滑动后等待短暂动作时间并重新读取 XML;最多执行有限次数,连续两次可见结构签名不变时停止。 - 找到正式颜色区域后调用原 `select_color`;找不到时抛出稳定错误 `PURCHASE_PANEL_COLOR_REGION_NOT_FOUND`,不点击未知目标。 - 在 `client/test/test_pdd_u2_purchase_adapter.py` 使用 Fake Device 覆盖归位及不归位路径。 - 预计修改: - `client/src/pdd_u2_purchase_adapter.py` - `client/test/test_pdd_u2_purchase_adapter.py` - 必要的脱敏 XML 测试固件 ## 验收标准 - [ ] 规格面板已在颜色区域顶部时不执行纵向滑动。 - [ ] 初始停在尺码区域时,能够有界滚回正式颜色标题和颜色选项所在区域。 - [ ] “请选择: 颜色分类”“已选”“选择颜色分类后提交订单”等摘要不作为正式颜色标题。 - [ ] 归位后复用原颜色左右扫描、精确点击和选中确认逻辑。 - [ ] 连续两次结构不变或达到上限时停止,不无限滑动、不点击未知区域。 - [ ] 无法定位可靠滚动容器或无法回到颜色区域时返回明确错误,且不进入地址、提交或不可逆阶段。 - [ ] 正常衣服、图片颜色、非滚动规格面板及尺码选择回归不受影响。 - [ ] 采购 Adapter 专项和 Client 回归测试通过。 ## 怎么验证 从 `client/` 执行: ```powershell 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 --disable-warnings C:/Python310/python.exe -m pytest test -q --disable-warnings ``` 真机验收:使用尚未进入不可逆阶段的 cg31 或新采购任务,确认规格面板初始停在中部时先回到颜色区域,再选择目标颜色和尺码;出现未知页面立即停止,不付款。 ## 风险和回退 - 风险:错误选择滚动容器可能操作商品页或关闭面板;只允许在已确认规格面板内使用唯一可靠的 PDD 纵向容器。 - 风险:无条件归位会拖慢正常商品;已在颜���区域时不滑动。 - 风险:新增归位属于真实采购下单前步骤;自动测试只使用 Fake Device,不连接真机、不创建订单。 - 回退:移除采购专用归位调用,恢复原颜色选择入口;原规格精确匹配、地址和不可逆安全门禁保持。
Author
Owner

实施完成,等待真机验收

最终实现

  • 采购选择颜色前新增纵向位置检查。
  • 正式颜色标题与可点击颜色选项已经可见时不滑动。
  • 只有“颜色摘要存在 + 正式颜色标题缺失 + 第二规格标题出现”三项强证据同时成立时,才判定面板停在中部并归位。
  • 在唯一可靠的 PDD 纵向容器内用手指向下滑;每次重新读取 XML,颜色区域出现即停止,连续两次结构不变或达到八次上限时停止。
  • “请选择”“已选”“选择颜色后提交”等摘要不作为正式标题。
  • 无标题、无滚动属性但原选择器可以处理的历史面板继续走原逻辑;没有改动采集、Admin、SQLite、地址、提交和不可逆门禁。
  • 无法归位时返回 PURCHASE_PANEL_COLOR_REGION_NOT_FOUND,不继续采购。

验证

  • 采购 Adapter 专项:51 项全部通过。
  • Client 全量:473 项中 471 项通过。
  • 另 2 项仍是既有版本断言失败:当前版本 0.1.2,旧测试固定期待 0.1.0,与 #230 无关。
  • 未对 cg31 真机执行滑动、选色、地址修改、下单或付款。

提交与归档

  • 实现提交:fee4028
  • 归档提交:dd8a718
  • 归档:docs/task/230-采购规格面板选择颜色前归位顶部.md

当前状态:已完成,待用户真机验收。Epic #1 和 MVP #2 的 #230 清单保持未勾选。

## 实施完成,等待真机验收 ### 最终实现 - 采购选择颜色前新增纵向位置检查。 - 正式颜色标题与可点击颜色选项已经可见时不滑动。 - 只有“颜色摘要存在 + 正式颜色标题缺失 + 第二规格标题出现”三项强证据同时成立时,才判定面板停在中部并归位。 - 在唯一可靠的 PDD 纵向容器内用手指向下滑;每次重新读取 XML,颜色区域出现即停止,连续两次结构不变或达到八次上限时停止。 - “请选择”“已选”“选择颜色后提交”等摘要不作为正式标题。 - 无标题、无滚动属性但原选择器可以处理的历史面板继续走原逻辑;没有改动采集、Admin、SQLite、地址、提交和不可逆门禁。 - 无法归位时返回 `PURCHASE_PANEL_COLOR_REGION_NOT_FOUND`,不继续采购。 ### 验证 - 采购 Adapter 专项:51 项全部通过。 - Client 全量:473 项中 471 项通过。 - 另 2 项仍是既有版本断言失败:当前版本 `0.1.2`,旧测试固定期待 `0.1.0`,与 #230 无关。 - 未对 cg31 真机执行滑动、选色、地址修改、下单或付款。 ### 提交与归档 - 实现提交:`fee4028` - 归档提交:`dd8a718` - 归档:`docs/task/230-采购规格面板选择颜色前归位顶部.md` 当前状态:已完成,待用户真机验收。Epic #1 和 MVP #2 的 #230 清单保持未勾选。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#230