Files
cmautobuy/docs/task/117-安全设置采购数量并关闭输入法遮挡.md
T

2.8 KiB
Raw Blame History

#117 安全设置采购数量并关闭输入法遮挡

  • 工单号:#117
  • 类型:缺陷修复
  • 父级:#1 Client 拼多多任务采集与采购客户端
  • 版本:Client 采购自动化
  • 状态:已完成,用户验收通过
  • 日期:2026-08-10
  • Gitea:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/117
  • 实现提交:b182eff

背景与目标

原数量设置代码总是聚焦数量输入框。即使页面默认数量已经正确,也会弹出安卓 输入法并遮挡规格面板底部的下单按钮。目标是优先避免输入法;必须使用输入框时, 只在确认输入法显示后安全关闭,并重新核对提交前页面。

最终方案

  1. 先从最新控件树读取当前数量,等于目标数量时直接返回。
  2. 数量差不超过 5 时,逐次使用“增加数量”或“减少数量”按钮;每次点击前重新 定位唯一按钮,点击后校验数量。
  3. 数量差较大或初始控件树没有唯一加减按钮时,才使用输入框。
  4. 输入框写入后通过 dumpsys input_method 判断输入法状态。只有明确显示时才按 一次返回键;状态未知时不盲目操作。
  5. 输入法关闭后重新核对规格面板、颜色、尺码、数量、价格和唯一提交按钮。 输入法无法关闭或规格面板丢失时安全停止。

实现与建单方案一致,无 Admin 接口和数据库结构变化,不执行付款操作。

改了哪些文件

  • client/src/pdd_u2_purchase_adapter.py:增加数量按钮策略、输入法检测和面板恢复校验。
  • client/test/test_pdd_u2_purchase_adapter.py:补充数量与输入法安全路径测试。
  • docs/client/06-quality-security.md:记录采购数量输入的稳定安全约束。

验收结果

  • 目标数量等于当前数量时不聚焦输入框。
  • 5 次以内的数量差优先逐次点击加减按钮并校验。
  • 输入框兜底仅在确认输入法显示时按一次返回键。
  • 输入法关闭后重新校验规格、数量、价格和唯一提交目标。
  • 输入法无法关闭、状态未知或规格面板丢失时安全停止。
  • 演练测试没有点击最终提交,live 测试仍只点击一次最终提交。
  • 等待用户在真机演练任务中验收输入法和规格面板恢复效果。

测试

从 client 目录执行:

C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_u2_purchase_adapter.py"
C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"

结果:专项 19 项通过;Client 全量 337 项通过。

未验证到的部分:未操作真实手机,未执行真实采购或点击真实下单按钮;需要用户 使用真机演练任务验证不同输入法实现下的显示与关闭效果。