在提交您的问题反馈之前
相关环境信息
- AutoWSGR 版本:
- 操作系统: Windows 10
- 模拟器: MuMu 模拟器(1920×1080)
- Python 版本: 3.13
问题描述
在演习面板中,_check_challenge_at() 仅通过单个像素点的颜色匹配来判断对手是否可挑战。当该探测点恰好落在背景中的蓝色杂色像素上时,会把已挑战过的对手误判为可挑战(Y)。
随后脚本点击该对手,期望进入「对手信息页」再跳转到出征准备页,但由于该对手实际上已不可挑战,页面没有任何响应,导致 click_and_wait_for_page 在 演习-对手信息 -> BATTLE_PREP 处导航超时,整个演习流程卡死,最终保存 NavError 截图后任务异常结束。
autowsgr_2026-04-12.debug.log
复现方法
- 确保演习列表中至少有一个对手已经挑战过(按钮变为灰色)。
- 前端添加并运行舰队演习任务。
- 如果该已挑战对手的按钮区域在单像素探测点处恰好出现蓝色背景像素,即可复现误判与后续导航超时。
Log输出
13:40:18.094 | DEBUG | ui/utils/navigation.py:116 | [UI] 已到达: 地图-出征 -> 地图-演习 (第 4 次截图)
13:40:19.117 | DEBUG | emulator/controller/scrcpy.py:442 | [Emulator] swipe(0.833,0.370→0.833,0.741) → pixel(1600,400→1600,800) 500ms ui/map/panels/exercise.py:114 in _exercise_swipe_to_top
13:40:20.483 | DEBUG | ui/map/panels/exercise.py:169 | [UI] 演习对手 1-4 状态: ['N', 'Y', 'Y', 'Y']
13:40:20.486 | DEBUG | emulator/controller/scrcpy.py:442 | [Emulator] swipe(0.833,0.741→0.833,0.370) → pixel(1600,800→1600,400) 500ms ui/map/panels/exercise.py:119 in _exercise_swipe_to_bottom
13:40:21.867 | INFO | ui/map/panels/exercise.py:181 | [UI] 演习对手状态: ExerciseRivalStatus([N, Y, Y, Y, Y])
13:40:21.868 | INFO | ops/exercise.py:61 | [OPS] 当前可挑战对手: ExerciseRivalStatus([N, Y, Y, Y, Y])
13:40:21.868 | INFO | ops/exercise.py:64 | [OPS] 正在挑战对手 2
13:40:21.872 | DEBUG | ui/page.py:62 | [UI] 当前页面: 地图页面
13:40:21.872 | INFO | ops/navigate.py:96 | [OPS] 已在目标页面: PageName.MAP
13:40:21.873 | INFO | ui/map/base.py:187 | [UI] 地图页面: 演习 → 演习
13:40:21.876 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.316, 0.050) → pixel(605, 54) res=1920x1080 ui/utils/navigation.py:216 in click_and_wait_for_page
13:40:21.941 | DEBUG | ui/utils/navigation.py:109 | [UI] 等待到达: 地图-演习 -> 地图-演习 (超时 5.0s)
13:40:21.944 | DEBUG | ui/utils/navigation.py:116 | [UI] 已到达: 地图-演习 -> 地图-演习 (第 1 次截图)
13:40:22.944 | INFO | ops/exercise.py:85 | [OPS] 选择对手 2
13:40:22.945 | INFO | ui/map/panels/exercise.py:210 | [UI] 演习 → 选择第 2 个对手
13:40:22.951 | DEBUG | emulator/controller/scrcpy.py:442 | [Emulator] swipe(0.833,0.370→0.833,0.741) → pixel(1600,400→1600,800) 500ms ui/map/panels/exercise.py:114 in _exercise_swipe_to_top
13:40:24.334 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.802, 0.389) → pixel(1540, 420) res=1920x1080 ui/map/panels/exercise.py:220 in select_exercise_rival
13:40:24.901 | INFO | ui/map/panels/exercise.py:248 | [UI] 演习 → 开始战斗 (对手信息页 → 出征准备)
13:40:24.906 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.838, 0.722) → pixel(1608, 780) res=1920x1080 ui/utils/navigation.py:216 in click_and_wait_for_page
13:40:24.969 | DEBUG | ui/utils/navigation.py:109 | [UI] 等待到达: 演习-对手信息 -> PageName.BATTLE_PREP (超时 5.0s)
13:40:24.973 | DEBUG | ui/page.py:62 | [UI] 当前页面: 地图页面
13:40:24.974 | DEBUG | ui/utils/navigation.py:122 | [UI] 等待 #1: 演习-对手信息 -> PageName.BATTLE_PREP, 当前=地图页面
...
13:40:30.124 | ERROR | ui/utils/navigation.py:135 | [UI] 等待超时: 演习-对手信息 -> PageName.BATTLE_PREP, 11 次截图后仍未到达, 当前: 未知
13:40:30.266 | DEBUG | infra/logger.py:399 | 截图已保存: logs\images\NavError_134030_254.png
在提交您的问题反馈之前
相关环境信息
问题描述
在演习面板中,_check_challenge_at() 仅通过单个像素点的颜色匹配来判断对手是否可挑战。当该探测点恰好落在背景中的蓝色杂色像素上时,会把已挑战过的对手误判为可挑战(Y)。
随后脚本点击该对手,期望进入「对手信息页」再跳转到出征准备页,但由于该对手实际上已不可挑战,页面没有任何响应,导致 click_and_wait_for_page 在 演习-对手信息 -> BATTLE_PREP 处导航超时,整个演习流程卡死,最终保存 NavError 截图后任务异常结束。
autowsgr_2026-04-12.debug.log
复现方法
Log输出