# #117 安全设置采购数量并关闭输入法遮挡 - 工单号:#117 - 类型:缺陷修复 - 父级:#1 Client 拼多多任务采集与采购客户端 - 版本:Client 采购自动化 - 状态:已完成,用户验收通过 - 日期:2026-08-10 - Gitea: - 实现提交:`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`:记录采购数量输入的稳定安全约束。 ## 验收结果 - [x] 目标数量等于当前数量时不聚焦输入框。 - [x] 5 次以内的数量差优先逐次点击加减按钮并校验。 - [x] 输入框兜底仅在确认输入法显示时按一次返回键。 - [x] 输入法关闭后重新校验规格、数量、价格和唯一提交目标。 - [x] 输入法无法关闭、状态未知或规格面板丢失时安全停止。 - [x] 演练测试没有点击最终提交,live 测试仍只点击一次最终提交。 - [ ] 等待用户在真机演练任务中验收输入法和规格面板恢复效果。 ## 测试 从 `client` 目录执行: ```powershell 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 项通过。 未验证到的部分:未操作真实手机,未执行真实采购或点击真实下单按钮;需要用户 使用真机演练任务验证不同输入法实现下的显示与关闭效果。