先判断:失败的是指令,还是页面反馈
点击命令已经发出,但应用没有立即显示结果,并不能证明操作失败。网络拥堵、页面异步加载或者系统动画,都可能让完成提示晚于脚本超时时间出现。此时直接重试有可能重复保存、重复创建记录。
先把任务结果分成已确认成功、已确认失败、结果未知三种状态。只有确认失败且重复操作无副作用时,才适合按规则重新执行;结果未知时应先检查应用本身的数据或状态。
重试前核对设备、应用和账号
多台安卓手机连接 Windows 主机时,应先核实目标设备编号、当前应用与当前账号。错误的设备上下文会让后续每次点击都落在不该操作的位置,不能靠重复运行解决。
应用的登录弹窗、权限对话框或验证码页面也可能改变当前操作条件。遇到这些界面应暂停,让有权限的用户完成必要确认,而不是把未知页面当作正常任务页面继续点击。
怎样设置可验证的完成条件
对于保存设置、更新资料等任务,优先定义页面上的实际结果,例如保存完成提示、开关状态变化或目标条目出现在列表中。只依据自动化接口返回值判断成功,容易造成误报。
执行每个关键步骤前后,可以记录不含敏感信息的页面观察,比较预期控件与当前控件是否一致。对于无法读取的界面元素,应要求人工核实,不应通过无限循环的点击来尝试碰运气。
限制重试次数并避免重复提交
适合重试的通常是只读观察、等待页面加载等低风险操作。创建订单、提交表单或发送内容可能产生外部后果,应先确认第一次尝试是否已经生效。
可以为低风险步骤设置明确的等待上限和有限次重试,并在每次重试前重新观察屏幕。如果页面始终不符合预期,应终止流程并记录错误,而不是继续累计操作次数。
把失败记录变成流程改进依据
建议记录操作时的应用版本、设备信息、预期界面、实际界面以及失败阶段,用来判断问题来自控件定位、页面变化、设备连接还是网络延迟。日志中应避免保存口令、验证码等敏感信息。
如果你的使用场景本身由 Windows 主机协调安卓设备,可以比较 scrcpy 的桌面控制方式与 AnsClaw 的屏幕观察和任务流程能力。在真实设备上先测试低风险任务,确认回放结果和错误处理可靠后再扩大运行规模。