Skip to content

yaml 内指定舰队组成时,选船搜索框内无法输出 吕贝克萤火虫  #481

@wufeng5702

Description

@wufeng5702

在提交您的问题反馈之前

  • 我已经阅读了 用户文档 并尝试自己解决问题,同时在社群中进行了讨论
  • 我无法找到任何 open issue 反馈了相同的问题

相关环境信息

  • OS: Windows 10
  • AutoWSGR: 12e8d58 (v2.2.0+)
  • 模拟器: 蓝叠国际版 5.22.110.1028 P64
  • python: uv + py3.12

问题描述

当 yaml 文件的选船有"吕贝克" 时,选船会失败

即: fleet: [ "Z17", "T-23", "吕贝克", "萤火虫" ] 时,"Z17", "T-23" 都可以正常选择,选 "吕贝克"萤火虫 时,搜索框只有空(不确定是文本是空白,还是没文本),导致选船失败。

复现方法

计划内容

执行这个 yaml 文件的任务

# MapLevel
chapter: 1 # 章节
map: 1 # 地图
selected_nodes: [ A, B ] # 选择要打的节点,白名单模式,一旦到达不要的节点就SL
repair_mode: 1
fleet_id: 2
fleet: [ "Z17", "T-23", "吕贝克", "萤火虫" ]

node_defaults:
  formation: 2 # 正常情况阵型选择,1-5
  # 夜战选择阶段
  night: False # 是否夜战
  # 前进选择阶段
  proceed: True # 结束后是否继续
  proceed_stop: [ 2, 2, 2, 2, 2, 2 ] # 根据我方血量状态选择是否继续前进,一旦对应破损程度达到或超过该值则返回

node_args:
  B:
    night: True
    formation: 2
    enemy_rules: [ ]

模拟器录屏

gif 文件17MB,可能难以加载渲染,可手动访问:https://img.cdn1.vip/i/6a06adaa5e127_1778822570.webp

Log输出

日志显示,疑似汉字变成乱码了

可能的重点日志:

14:29:47.313 | INFO     | ui/battle/fleet_change/_change.py:195 | [准备页] 成员对齐: 槽位 3 <- '萤火虫' (原: 'None')
14:29:47.313 | DEBUG    | ui/battle/base.py:209 | [UI] 出征准备 → 点击舰船位 3
14:29:47.315 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.458, 0.463) → pixel(879, 500)  res=1920x1080  ui/battle/base.py:210 in click_ship_slot
14:29:47.512 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: 编队 -> 编队选船 (超时 5.0s)
14:29:47.513 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:47.513 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:47.513 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: 编队 -> 编队选船, 当前=出征准备
14:29:48.015 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:48.016 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: 编队 -> 编队选船 (第 2 次截图)
14:29:48.016 | INFO     | ui/choose_ship_page.py:154 | [UI] 选船 → 打开搜索框
14:29:48.017 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.729, 0.056) → pixel(1400, 60)  res=1920x1080  ui/choose_ship_page.py:155 in ensure_search_box        
14:29:48.179 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: ? -> ? (超时 5.0s)
14:29:48.181 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:48.181 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:48.182 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: ? -> ?, 当前=未知
14:29:48.684 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:48.685 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: ? -> ? (第 2 次截图)
14:29:48.685 | DEBUG    | ui/choose_ship_page.py:172 | [UI] 选船 → 输入舰船名 '萤火虫'
14:29:48.687 | DEBUG    | emulator/controller/scrcpy.py:471 | [Emulator] text('萤火虫')  ui/choose_ship_page.py:173 in input_ship_name
14:29:48.860 | DEBUG    | ui/choose_ship_page.py:177 | [UI] 选船 → 关闭键盘
14:29:48.862 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.052, 0.093) → pixel(100, 100)  res=1920x1080  ui/choose_ship_page.py:178 in ensure_dismiss_keyboard
14:29:49.061 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: ? -> ? (超时 5.0s)
 examples  uv run python .\week.py
2026-05-15 14:29:21.520 | INFO     | autowsgr.scheduler.launcher:load_config:77 - [Launcher] 加载配置: usersettings.yaml
2026-05-15 14:29:21.523 | WARNING  | autowsgr.infra.config:_resolve_emulator_defaults:341 - 自动检测模拟器路径失败: 没有找到 蓝叠 的安装路径
2026-05-15 14:29:21.524 | INFO     | autowsgr.infra.config:load:491 - 已加载配置: usersettings.yaml
14:29:21.527 | INFO     | scheduler/launcher.py:89 | [Launcher] 日志初始化完成: level=DEBUG, 通道覆盖={'decisive': 'DEBUG', 'ops.decisive': 'DEBUG', 'ui.decisive': 'DEBUG', 'vision.pixel': 'TRACE', 'emulator': 'DEBUG'}
14:29:21.527 | INFO     | scheduler/launcher.py:119 | [Launcher] 连接设备 (serial=127.0.0.1:5555)
14:29:21.696 | DEBUG    | emulator/controller/scrcpy.py:205 | [Emulator] 推送 scrcpy-server.jar 到设备...
14:29:21.775 | DEBUG    | emulator/controller/scrcpy.py:231 | [Emulator] 启动 scrcpy-server: CLASSPATH=/data/local/tmp/scrcpy-server.jar app_process / com.genymobile.scrcpy.Server 2.7 log_level=info tunnel_forward=true video=true audio=false control=false max_size=0 video_bit_rate=8000000 max_fps=0 video_codec=h264 send_device_meta=false send_frame_meta=false send_codec_meta=false send_dummy_byte=true
14:29:22.303 | DEBUG    | emulator/controller/scrcpy.py:258 | [Emulator] scrcpy 视频通道已连接
14:29:22.408 | INFO     | emulator/controller/scrcpy.py:140 | [Emulator] 已连接设备 (scrcpy): 127.0.0.1:5555 (1920x1080)
14:29:22.408 | INFO     | scheduler/launcher.py:138 | [Launcher] 创建 OCR 引擎 (backend=easyocr)
14:29:22.408 | INFO     | vision/ocr.py:399 | [OCR] 初始化 EasyOCR(gpu=False)
Using CPU. Note: This module is much faster with a GPU.
14:29:24.006 | INFO     | scheduler/launcher.py:164 | [Launcher] GameContext 已构建
14:29:24.006 | INFO     | scheduler/launcher.py:180 | [Launcher] 确保游戏就绪 (app=官服)
14:29:24.006 | INFO     | ops/startup.py:313 | [Startup] 确保游戏就绪 (package=com.huanmeng.zhanjian2)
14:29:24.256 | DEBUG    | emulator/controller/scrcpy.py:499 | [Emulator] is_app_running('com.huanmeng.zhanjian2') → True  ops/startup.py:87 in is_game_running
14:29:24.256 | DEBUG    | ops/startup.py:88 | [Startup] 游戏运行状态: 运行中
14:29:24.256 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.MAIN' OK (4/4 规则匹配, 策略=all)
14:29:24.257 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 主页面
14:29:24.257 | INFO     | ops/startup.py:320 | [Startup] 游戏已在运行
14:29:24.257 | INFO     | ops/startup.py:322 | [Startup] 游戏就绪
14:29:24.257 | INFO     | scheduler/launcher.py:198 | [Launcher] 启动完成,游戏已就绪
14:29:24.260 | INFO     | combat/plan.py:332 | [Combat] 加载作战计划: 周常2 (normal), 章节 2-1, 节点: ['F', 'B', 'D']
14:29:24.260 | INFO     | ops/normal_fight.py:168 | [OPS] 常规战连续执行 3 次
14:29:24.260 | INFO     | ops/normal_fight.py:172 | [OPS] 常规战第 1/3 次
14:29:24.261 | INFO     | ops/normal_fight.py:109 | [OPS] 常规战: 2-1 (周常2)
14:29:24.261 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.MAIN' OK (4/4 规则匹配, 策略=all)
14:29:24.261 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 主页面
14:29:24.261 | DEBUG    | ops/navigate.py:113 | [OPS] 步骤 1 (总限 20): PageName.MAIN → PageName.MAP (主页面 → 地图) 
14:29:24.262 | INFO     | ui/main_page/controller.py:189 | [UI] 主页面 → 出征
14:29:24.266 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.938, 0.898) → pixel(1800, 969)  res=1920x1080  ui/utils/navigation.py:216 in click_and_wait_for_page
14:29:24.420 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: PageName.MAIN -> PageName.MAP (超时 5.0s)
14:29:24.421 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.MAIN' OK (4/4 规则匹配, 策略=all)
14:29:24.422 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 主页面
14:29:24.422 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: PageName.MAIN -> PageName.MAP, 当前=主页面
14:29:24.925 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:24.926 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:24.926 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #2: PageName.MAIN -> PageName.MAP, 当前=未知
14:29:25.430 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: PageName.MAIN -> PageName.MAP (第 3 次截图)
14:29:25.432 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 地图页面
14:29:25.432 | INFO     | ops/navigate.py:96 | [OPS] 已在目标页面: PageName.MAP
14:29:25.432 | INFO     | ui/map/base.py:187 | [UI] 地图页面: 远征 → 出征
14:29:25.435 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.184, 0.051) → pixel(354, 55)  res=1920x1080  ui/utils/navigation.py:216 in click_and_wait_for_page   
14:29:25.631 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: 地图-远征 -> 地图-出征 (超时 5.0s)
14:29:25.633 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 地图页面
14:29:25.633 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: 地图-远征 -> 地图-出征, 当前=地图页面
14:29:26.136 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: 地图-远征 -> 地图-出征 (第 2 次截图)
14:29:26.428 | DEBUG    | vision/ocr.py:183 | [OCR] recognize_single: 无结果
14:29:26.429 | WARNING  | ui/map/panels/sortie.py:115 | [UI] 战利品数量 OCR 无结果
D:\__Playground\Auto-WSGR\.venv\Lib\site-packages\torch\utils\data\dataloader.py:775: UserWarning: 'pin_memory' argument is set as true but no accelerator is found, then device pinned memory won't be used.
  super().__init__(loader)
14:29:26.514 | DEBUG    | vision/ocr.py:186 | [OCR] recognize_single: '14/500' (conf=0.86)
14:29:26.514 | INFO     | ui/map/panels/sortie.py:139 | [UI] 舰船数量: 14/500
14:29:26.515 | INFO     | ui/map/panels/sortie.py:365 | [UI] 地图页面 → 进入出征 2-1
14:29:27.166 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '1-1/母港附近海域' (conf=0.66)
14:29:27.167 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第1章 1-1 母港附近海域
14:29:27.408 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '1-1/母港附近海域' (conf=0.66)
14:29:27.409 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第1章 1-1 母港附近海域
14:29:27.645 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '1-1/母港附近海域' (conf=0.66)
14:29:27.645 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第1章 1-1 母港附近海域
14:29:27.645 | INFO     | ui/map/panels/sortie.py:253 | [UI] 章节导航: 当前第 1 章 -> 目标第 2 章
14:29:27.646 | DEBUG    | ui/map/base.py:127 | [UI] 侧边栏选中章节: y_center=0.550 (8个亮点)
14:29:27.646 | INFO     | ui/map/panels/sortie.py:180 | [UI] 地图页面 -> 下一章 (y=0.670)
14:29:27.648 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.100, 0.670) → pixel(192, 723)  res=1920x1080  ui/map/panels/sortie.py:181 in click_next_chapter      
14:29:28.456 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '2-11扶桑西部海域' (conf=0.75)
14:29:28.456 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第2章 2-1 扶桑西部海域
14:29:28.697 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '2-11扶桑西部海域' (conf=0.75)
14:29:28.697 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第2章 2-1 扶桑西部海域
14:29:28.939 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '2-11扶桑西部海域' (conf=0.75)
14:29:28.939 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第2章 2-1 扶桑西部海域
14:29:28.940 | INFO     | ui/map/panels/sortie.py:241 | [UI] 章节导航: 命中目标第 2 章,二次确认 1/2
14:29:29.527 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '2-11扶桑西部海域' (conf=0.75)
14:29:29.527 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第2章 2-1 扶桑西部海域
14:29:29.771 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '2-11扶桑西部海域' (conf=0.75)
14:29:29.772 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第2章 2-1 扶桑西部海域
14:29:30.010 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '2-11扶桑西部海域' (conf=0.75)
14:29:30.011 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第2章 2-1 扶桑西部海域
14:29:30.011 | INFO     | ui/map/panels/sortie.py:241 | [UI] 章节导航: 命中目标第 2 章,二次确认 2/2
14:29:30.011 | INFO     | ui/map/panels/sortie.py:247 | [UI] 章节导航: 已到达第 2 章
14:29:30.092 | DEBUG    | vision/ocr.py:204 | [OCR] recognize_maxlen: '2-11扶桑西部海域' (conf=0.75)
14:29:30.093 | DEBUG    | ui/map/base.py:155 | [UI] 地图识别: 第2章 2-1 扶桑西部海域
14:29:30.096 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.625, 0.556) → pixel(1200, 600)  res=1920x1080  ui/utils/navigation.py:216 in click_and_wait_for_page 
14:29:30.290 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: 地图-出征 2-1 -> PageName.BATTLE_PREP (超时 5.0s)
14:29:30.291 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 地图页面
14:29:30.291 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: 地图-出征 2-1 -> PageName.BATTLE_PREP, 当前=地图页面
14:29:30.794 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:30.794 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:30.794 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #2: 地图-出征 2-1 -> PageName.BATTLE_PREP, 当前=未知
14:29:31.296 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:31.297 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: 地图-出征 2-1 -> PageName.BATTLE_PREP (第 3 次截图)
14:29:32.298 | DEBUG    | ui/battle/base.py:187 | [UI] 出征准备 → 选择 4队
14:29:32.300 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.448, 0.170) → pixel(860, 183)  res=1920x1080  ui/battle/base.py:188 in select_fleet
14:29:32.940 | INFO     | ui/battle/fleet_change/_change.py:136 | [准备页] 目标编成: ['Z28', 'Z17', 'T-23', '萤火虫', None, None]
14:29:33.192 | INFO     | ui/battle/fleet_change/_detect.py:96 | [准备页] 当前舰队: [None, None, None, None, None, None]
14:29:33.193 | INFO     | ui/battle/fleet_change/_change.py:195 | [准备页] 成员对齐: 槽位 0 <- 'Z28' (原: 'None')
14:29:33.193 | DEBUG    | ui/battle/base.py:209 | [UI] 出征准备 → 点击舰船位 0
14:29:33.197 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.115, 0.463) → pixel(220, 500)  res=1920x1080  ui/battle/base.py:210 in click_ship_slot
14:29:33.367 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: 编队 -> 编队选船 (超时 5.0s)
14:29:33.368 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:33.369 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:33.369 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: 编队 -> 编队选船, 当前=出征准备
14:29:33.871 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:33.871 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:33.872 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #2: 编队 -> 编队选船, 当前=出征准备
14:29:34.373 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:34.374 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: 编队 -> 编队选船 (第 3 次截图)
14:29:34.374 | INFO     | ui/choose_ship_page.py:154 | [UI] 选船 → 打开搜索框
14:29:34.377 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.729, 0.056) → pixel(1400, 60)  res=1920x1080  ui/choose_ship_page.py:155 in ensure_search_box        
14:29:34.580 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: ? -> ? (超时 5.0s)
14:29:34.583 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:34.583 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:34.583 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: ? -> ?, 当前=未知
14:29:35.085 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:35.085 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: ? -> ? (第 2 次截图)
14:29:35.085 | DEBUG    | ui/choose_ship_page.py:172 | [UI] 选船 → 输入舰船名 'Z28'
14:29:35.087 | DEBUG    | emulator/controller/scrcpy.py:471 | [Emulator] text('Z28')  ui/choose_ship_page.py:173 in input_ship_name
14:29:35.347 | DEBUG    | ui/choose_ship_page.py:177 | [UI] 选船 → 关闭键盘
14:29:35.349 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.052, 0.093) → pixel(100, 100)  res=1920x1080  ui/choose_ship_page.py:178 in ensure_dismiss_keyboard
14:29:35.549 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: ? -> ? (超时 5.0s)
14:29:35.550 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:35.550 | DEBUG    | ui/utils/navigation.py:181 | [UI] 等待离开 #1: 仍在 ?
14:29:36.053 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:36.053 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:36.054 | DEBUG    | ui/utils/navigation.py:172 | [UI] 已离开: ? -> ? (第 2 次截图, 到达=未知)
14:29:36.062 | DEBUG    | ui/utils/ship_list.py:117 | [选船列表] DLL 定位到 1 行候选项
14:29:36.301 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '228' -> 'Z28' (distance=1)
14:29:36.301 | DEBUG    | ui/utils/ship_list.py:160 | [选船列表] 识别: ['Z28'] (共 1 行)
14:29:36.302 | INFO     | ui/choose_ship_page.py:464 | [UI] 选船 DLL+OCR -> 'Z28' (第 1/3 次), 点击 (0.095, 0.504)
14:29:37.305 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.095, 0.504) → pixel(182, 544)  res=1920x1080  ui/choose_ship_page.py:473 in _click_ship_in_list
14:29:37.546 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: 编队选船 -> 编队 (超时 5.0s)
14:29:37.547 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:37.547 | DEBUG    | ui/utils/navigation.py:181 | [UI] 等待离开 #1: 仍在 编队选船
14:29:38.049 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:38.050 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:38.050 | DEBUG    | ui/utils/navigation.py:172 | [UI] 已离开: 编队选船 -> 编队 (第 2 次截图, 到达=出征准备)
14:29:38.351 | INFO     | ui/battle/fleet_change/_change.py:195 | [准备页] 成员对齐: 槽位 1 <- 'Z17' (原: 'None')
14:29:38.352 | DEBUG    | ui/battle/base.py:209 | [UI] 出征准备 → 点击舰船位 1
14:29:38.354 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.229, 0.463) → pixel(440, 500)  res=1920x1080  ui/battle/base.py:210 in click_ship_slot
14:29:38.527 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: 编队 -> 编队选船 (超时 5.0s)
14:29:38.528 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:38.528 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:38.529 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: 编队 -> 编队选船, 当前=出征准备
14:29:39.031 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:39.032 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: 编队 -> 编队选船 (第 2 次截图)
14:29:39.032 | INFO     | ui/choose_ship_page.py:154 | [UI] 选船 → 打开搜索框
14:29:39.033 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.729, 0.056) → pixel(1400, 60)  res=1920x1080  ui/choose_ship_page.py:155 in ensure_search_box        
14:29:39.234 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: ? -> ? (超时 5.0s)
14:29:39.236 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:39.236 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:39.237 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: ? -> ?, 当前=未知
14:29:39.738 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:39.739 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: ? -> ? (第 2 次截图)
14:29:39.739 | DEBUG    | ui/choose_ship_page.py:172 | [UI] 选船 → 输入舰船名 'Z17'
14:29:39.741 | DEBUG    | emulator/controller/scrcpy.py:471 | [Emulator] text('Z17')  ui/choose_ship_page.py:173 in input_ship_name
14:29:39.946 | DEBUG    | ui/choose_ship_page.py:177 | [UI] 选船 → 关闭键盘
14:29:39.948 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.052, 0.093) → pixel(100, 100)  res=1920x1080  ui/choose_ship_page.py:178 in ensure_dismiss_keyboard
14:29:40.089 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: ? -> ? (超时 5.0s)
14:29:40.089 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:40.090 | DEBUG    | ui/utils/navigation.py:181 | [UI] 等待离开 #1: 仍在 ?
14:29:40.592 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:40.593 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:40.593 | DEBUG    | ui/utils/navigation.py:172 | [UI] 已离开: ? -> ? (第 2 次截图, 到达=未知)
14:29:40.602 | DEBUG    | ui/utils/ship_list.py:117 | [选船列表] DLL 定位到 1 行候选项
14:29:40.820 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '217' -> 'Z17' (distance=1)
14:29:40.820 | DEBUG    | ui/utils/ship_list.py:160 | [选船列表] 识别: ['Z17'] (共 1 行)
14:29:40.821 | INFO     | ui/choose_ship_page.py:464 | [UI] 选船 DLL+OCR -> 'Z17' (第 1/3 次), 点击 (0.095, 0.505)
14:29:41.823 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.095, 0.505) → pixel(182, 545)  res=1920x1080  ui/choose_ship_page.py:473 in _click_ship_in_list
14:29:42.031 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: 编队选船 -> 编队 (超时 5.0s)
14:29:42.031 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:42.032 | DEBUG    | ui/utils/navigation.py:181 | [UI] 等待离开 #1: 仍在 编队选船
14:29:42.534 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:42.534 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:42.534 | DEBUG    | ui/utils/navigation.py:172 | [UI] 已离开: 编队选船 -> 编队 (第 2 次截图, 到达=出征准备)
14:29:42.836 | INFO     | ui/battle/fleet_change/_change.py:195 | [准备页] 成员对齐: 槽位 2 <- 'T-23' (原: 'None')
14:29:42.836 | DEBUG    | ui/battle/base.py:209 | [UI] 出征准备 → 点击舰船位 2
14:29:42.839 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.344, 0.463) → pixel(660, 500)  res=1920x1080  ui/battle/base.py:210 in click_ship_slot
14:29:43.000 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: 编队 -> 编队选船 (超时 5.0s)
14:29:43.001 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:43.001 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:43.001 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: 编队 -> 编队选船, 当前=出征准备
14:29:43.502 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:43.503 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: 编队 -> 编队选船 (第 2 次截图)
14:29:43.503 | INFO     | ui/choose_ship_page.py:154 | [UI] 选船 → 打开搜索框
14:29:43.505 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.729, 0.056) → pixel(1400, 60)  res=1920x1080  ui/choose_ship_page.py:155 in ensure_search_box        
14:29:43.658 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: ? -> ? (超时 5.0s)
14:29:43.660 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:43.660 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:43.661 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: ? -> ?, 当前=未知
14:29:44.161 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:44.162 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: ? -> ? (第 2 次截图)
14:29:44.162 | DEBUG    | ui/choose_ship_page.py:172 | [UI] 选船 → 输入舰船名 'T-23'
14:29:44.164 | DEBUG    | emulator/controller/scrcpy.py:471 | [Emulator] text('T-23')  ui/choose_ship_page.py:173 in input_ship_name
14:29:44.352 | DEBUG    | ui/choose_ship_page.py:177 | [UI] 选船 → 关闭键盘
14:29:44.354 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.052, 0.093) → pixel(100, 100)  res=1920x1080  ui/choose_ship_page.py:178 in ensure_dismiss_keyboard
14:29:44.559 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: ? -> ? (超时 5.0s)
14:29:44.559 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:44.560 | DEBUG    | ui/utils/navigation.py:181 | [UI] 等待离开 #1: 仍在 ?
14:29:45.062 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:45.063 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:45.063 | DEBUG    | ui/utils/navigation.py:172 | [UI] 已离开: ? -> ? (第 2 次截图, 到达=未知)
14:29:45.074 | DEBUG    | ui/utils/ship_list.py:117 | [选船列表] DLL 定位到 1 行候选项
14:29:45.299 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: 'T23' -> 'T-23' (distance=1)
14:29:45.300 | DEBUG    | ui/utils/ship_list.py:160 | [选船列表] 识别: ['T-23'] (共 1 行)
14:29:45.300 | INFO     | ui/choose_ship_page.py:464 | [UI] 选船 DLL+OCR -> 'T-23' (第 1/3 次), 点击 (0.095, 0.504)
14:29:46.303 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.095, 0.504) → pixel(182, 544)  res=1920x1080  ui/choose_ship_page.py:473 in _click_ship_in_list
14:29:46.506 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: 编队选船 -> 编队 (超时 5.0s)
14:29:46.507 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:46.507 | DEBUG    | ui/utils/navigation.py:181 | [UI] 等待离开 #1: 仍在 编队选船
14:29:47.010 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:47.011 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:47.011 | DEBUG    | ui/utils/navigation.py:172 | [UI] 已离开: 编队选船 -> 编队 (第 2 次截图, 到达=出征准备)
14:29:47.313 | INFO     | ui/battle/fleet_change/_change.py:195 | [准备页] 成员对齐: 槽位 3 <- '萤火虫' (原: 'None')
14:29:47.313 | DEBUG    | ui/battle/base.py:209 | [UI] 出征准备 → 点击舰船位 3
14:29:47.315 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.458, 0.463) → pixel(879, 500)  res=1920x1080  ui/battle/base.py:210 in click_ship_slot
14:29:47.512 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: 编队 -> 编队选船 (超时 5.0s)
14:29:47.513 | DEBUG    | vision/matcher.py:206 | [Matcher] 'PageName.BATTLE_PREP' OK (4/4 规则匹配, 策略=all)
14:29:47.513 | DEBUG    | ui/page.py:62 | [UI] 当前页面: 出征准备
14:29:47.513 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: 编队 -> 编队选船, 当前=出征准备
14:29:48.015 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_page' OK (5/5 规则匹配, 策略=all)
14:29:48.016 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: 编队 -> 编队选船 (第 2 次截图)
14:29:48.016 | INFO     | ui/choose_ship_page.py:154 | [UI] 选船 → 打开搜索框
14:29:48.017 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.729, 0.056) → pixel(1400, 60)  res=1920x1080  ui/choose_ship_page.py:155 in ensure_search_box        
14:29:48.179 | DEBUG    | ui/utils/navigation.py:109 | [UI] 等待到达: ? -> ? (超时 5.0s)
14:29:48.181 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:48.181 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:48.182 | DEBUG    | ui/utils/navigation.py:122 | [UI] 等待 #1: ? -> ?, 当前=未知
14:29:48.684 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:48.685 | DEBUG    | ui/utils/navigation.py:116 | [UI] 已到达: ? -> ? (第 2 次截图)
14:29:48.685 | DEBUG    | ui/choose_ship_page.py:172 | [UI] 选船 → 输入舰船名 '萤火虫'
14:29:48.687 | DEBUG    | emulator/controller/scrcpy.py:471 | [Emulator] text('萤火虫')  ui/choose_ship_page.py:173 in input_ship_name
14:29:48.860 | DEBUG    | ui/choose_ship_page.py:177 | [UI] 选船 → 关闭键盘
14:29:48.862 | DEBUG    | emulator/controller/scrcpy.py:419 | [Emulator] click(0.052, 0.093) → pixel(100, 100)  res=1920x1080  ui/choose_ship_page.py:178 in ensure_dismiss_keyboard
14:29:49.061 | DEBUG    | ui/utils/navigation.py:164 | [UI] 等待离开: ? -> ? (超时 5.0s)
14:29:49.061 | DEBUG    | vision/matcher.py:206 | [Matcher] 'choose_ship_input' OK (3/3 规则匹配, 策略=all)
14:29:49.062 | DEBUG    | ui/utils/navigation.py:181 | [UI] 等待离开 #1: 仍在 ?
14:29:49.564 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL — 所有子签名 (2) 均未匹配
14:29:49.564 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配 (共 13 个注册页面)
14:29:49.565 | DEBUG    | ui/utils/navigation.py:172 | [UI] 已离开: ? -> ? (第 2 次截图, 到达=未知)
14:29:49.575 | DEBUG    | ui/utils/ship_list.py:117 | [选船列表] DLL 定位到 2 行候选项
14:29:49.876 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '塞尔' -> '鲍尔' (distance=1)
14:29:49.878 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '帝国' -> '帝国' (distance=0)
14:29:49.882 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '列克星敦' -> '列克星敦' (distance=0)
14:29:49.885 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '贝亚恩' -> '贝亚恩' (distance=0)
14:29:49.888 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '黄蜂' -> '黄蜂' (distance=0)
14:29:49.890 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '苍龙' -> '苍龙' (distance=0)
14:29:49.892 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '飞龙' -> '飞龙' (distance=0)
14:29:50.199 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '翔鹤' -> '翔鹤' (distance=0)
14:29:50.202 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '瑞鹤' -> '瑞鹤' (distance=0)
14:29:50.205 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '企业' -> '企业' (distance=0)
14:29:50.207 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '约克城' -> '约克城' (distance=0)
14:29:50.209 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '大黄蜂' -> '大黄蜂' (distance=0)
14:29:50.212 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '萨拉托加' -> '萨拉托加' (distance=0)
14:29:50.216 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '列克星敦' -> '列克星敦' (distance=0)
14:29:50.216 | DEBUG    | ui/utils/ship_list.py:160 | [选船列表] 识别: ['企业', '列克星敦', '大黄蜂', '帝国', '瑞鹤', '约克城', '翔鹤', '苍龙', '萨拉托加', '贝亚恩', '飞龙', '鲍尔', 
'黄蜂'] (共 2 行)
14:29:50.217 | WARNING  | ui/choose_ship_page.py:476 | [UI] 选船列表未匹配到 '萤火虫' (第 1/3 次), 向上滚动
14:29:50.219 | DEBUG    | emulator/controller/scrcpy.py:444 | [Emulator] swipe(0.400,0.550→0.400,0.300) → pixel(768,594→768,324) 400ms  ui/choose_ship_page.py:483 in _click_ship_in_list
14:29:51.327 | DEBUG    | ui/utils/ship_list.py:117 | [选船列表] DLL 定位到 2 行候选项
14:29:51.639 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '翔鹤' -> '翔鹤' (distance=0)
14:29:51.642 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '瑞鹤' -> '瑞鹤' (distance=0)
14:29:51.644 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '企业' -> '企业' (distance=0)
14:29:51.648 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '约克城' -> '约克城' (distance=0)
14:29:51.651 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '大黄蜂' -> '大黄蜂' (distance=0)
14:29:51.655 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '萨拉托加' -> '萨拉托加' (distance=0)
14:29:51.659 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '列克星敦' -> '列克星敦' (distance=0)
14:29:51.963 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '突击者' -> '突击者' (distance=0)
14:29:51.965 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '加贺' -> '加贺' (distance=0)
14:29:51.967 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '赤城' -> '赤城' (distance=0)
14:29:51.972 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '奥里斯坎尼' -> '奥里斯坎尼' (distance=0)
14:29:51.976 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '香格里拉' -> '香格里拉' (distance=0)
14:29:51.978 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '黄蜂' -> '黄蜂' (distance=0)
14:29:51.981 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '勇猛' -> '勇猛' (distance=0)
14:29:51.981 | DEBUG    | ui/utils/ship_list.py:160 | [选船列表] 识别: ['企业', '列克星敦', '加贺', '勇猛', '大黄蜂', '奥里斯坎尼', '瑞鹤', '突击者', '约克城', '翔鹤', '萨拉托加', ' 
赤城', '香格里拉', '黄蜂'] (共 2 行)
14:29:51.982 | WARNING  | ui/choose_ship_page.py:476 | [UI] 选船列表未匹配到 '萤火虫' (第 2/3 次), 向上滚动
14:29:51.984 | DEBUG    | emulator/controller/scrcpy.py:444 | [Emulator] swipe(0.400,0.550→0.400,0.300) → pixel(768,594→768,324) 400ms  ui/choose_ship_page.py:483 in _click_ship_in_list
14:29:53.147 | DEBUG    | ui/utils/ship_list.py:117 | [选船列表] DLL 定位到 2 行候选项
14:29:53.456 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '突击者' -> '突击者' (distance=0)
14:29:53.458 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '加贺' -> '加贺' (distance=0)
14:29:53.460 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '赤城' -> '赤城' (distance=0)
14:29:53.465 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '奥里斯坎尼' -> '奥里斯坎尼' (distance=0)
14:29:53.470 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '香格里拉' -> '香格里拉' (distance=0)
14:29:53.471 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '黄蜂' -> '黄蜂' (distance=0)
14:29:53.473 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '勇猛' -> '勇猛' (distance=0)
14:29:53.793 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '复仇' -> '复仇' (distance=0)
14:29:53.795 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: 'G6' -> 'G6' (distance=0)
14:29:53.799 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '72工程' -> '72工程' (distance=0)
14:29:53.801 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '霞飞' -> '霞飞' (distance=0)
14:29:53.804 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '欧罗巴' -> '欧罗巴' (distance=0)
14:29:53.807 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '本宁顿' -> '本宁顿' (distance=0)
14:29:53.810 | DEBUG    | vision/ocr.py:452 | [OCR] fuzzy_match: '提康德罗加' -> '提康德罗加' (distance=0)
14:29:53.811 | DEBUG    | ui/utils/ship_list.py:160 | [选船列表] 识别: ['72工程', 'G6', '加贺', '勇猛', '复仇', '奥里斯坎尼', '提康德罗加', '本宁顿', '欧罗巴', '突击者', '赤城', '霞 
飞', '香格里拉', '黄蜂'] (共 2 行)
14:29:53.812 | WARNING  | ui/choose_ship_page.py:476 | [UI] 选船列表未匹配到 '萤火虫' (第 3/3 次), 向上滚动
14:29:53.812 | ERROR    | ui/choose_ship_page.py:306 | [UI] 未在选船列表中找到可用候选: ['萤火虫']
Traceback (most recent call last):
  File "D:\__Playground\Auto-WSGR\examples\week.py", line 32, in <module>
    results = run_normal_fight_from_yaml(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\__Playground\Auto-WSGR\autowsgr\ops\normal_fight.py", line 475, in run_normal_fight_from_yaml
    return run_normal_fight(
           ^^^^^^^^^^^^^^^^^
  File "D:\__Playground\Auto-WSGR\autowsgr\ops\normal_fight.py", line 454, in run_normal_fight
    return runner.run_for_times(times, gap=gap)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\__Playground\Auto-WSGR\autowsgr\ops\normal_fight.py", line 173, in run_for_times
    result = self.run(**kwargs)
             ^^^^^^^^^^^^^^^^^^
  File "D:\__Playground\Auto-WSGR\autowsgr\ops\normal_fight.py", line 122, in run
    ship_stats = self._prepare_for_battle()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\__Playground\Auto-WSGR\autowsgr\ops\normal_fight.py", line 337, in _prepare_for_battle
    page.change_fleet(
  File "D:\__Playground\Auto-WSGR\autowsgr\ui\battle\fleet_change\_change.py", line 201, in change_fleet
    selected = self._change_single_ship(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\__Playground\Auto-WSGR\autowsgr\ui\battle\fleet_change\_change.py", line 640, in _change_single_ship
    return choose_page.change_single_ship(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\__Playground\Auto-WSGR\autowsgr\ui\choose_ship_page.py", line 312, in change_single_ship
    raise RuntimeError(f'未找到满足条件的目标舰船: {candidates}{level_hint}{ship_type_hint}')
RuntimeError: 未找到满足条件的目标舰船: ['萤火虫']

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions