You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Edge 119版本是否导致SeleniumBasic出现窗口控制异常?

Edge 119 + SeleniumBasic VBA 窗口最大化报错解决方案

问题背景

此前用VBA结合SeleniumBasic和Edge 118实现多文件自动化完全正常,升级Edge及对应Driver到119.0.2151.72版本后,执行窗口最大化代码时触发NoSuchWindowError。

报错信息

Run-time error '23':

NoSuchWindowError
Window not found: no such window: target window already closed
from unknown error: web view not found
(Session info: MicrosoftEdge = 119.0.2151.58)
(Driver info: msedgedriver = 119.0.2151.58
(33e26e7eb4fba096f2f29de91f90d34b8597be96),platform=Windows NT 10.0.19045 x86_64)

实际现象

启动Edge时弹出用户名选择小窗口(已通过SetCapability自动处理),Edge窗口打开后显示用户已选中的提示框,代码模拟点击确定后,执行.Window.Maximize时触发错误,Edge窗口保持打开直到模块终止。

涉及代码片段

Set oEdgeObject= CreateObject("Selenium.EdgeDriver")
With oEdgeObject
    On Error GoTo SiteHandler

    .SetCapability "ms:edgeOptions", "{""excludeSwitches"":[""enable-automation""]}"
    .Start
    .Wait 1000

    Call LeftClick(600, 400)
    .Wait 1000
    
    .Window.Maximize

已尝试的无效操作

  • 移除自动选择配置文件的SetCapability代码
  • 使用SwitchToNextWindow(触发“window does not exist”错误)
  • 使用SwitchToPreviousWindow(无报错但问题依旧)
  • 在Edge 118版本电脑测试代码可正常运行,排除代码本身逻辑问题
  • 结合SetCapability或手动选择配置文件调用get方法,仍出现相同报错
  • 尝试SwitchToParentFrame、SwitchToWindowByName、SwitchToWindowByTitle,仅极少数随机场景生效
  • 移除SetCapability后手动完成登录流程,代码可正常执行,但引入手动操作、易出错及信息栏干扰问题

当前环境

  • SeleniumBasic-2.0.9.0
  • Edge及对应Driver版本:119.0.2151.72
  • 测试多个URL(含Google)均出现相同问题

有效解决方案

方案1:调整EdgeOptions配置,提前指定窗口最大化并禁用弹窗

修改SetCapability配置,直接设置启动时最大化窗口,同时添加禁用配置文件选择弹窗的参数,避免模拟点击带来的窗口切换问题:

Set oEdgeObject = CreateObject("Selenium.EdgeDriver")
With oEdgeObject
    On Error GoTo SiteHandler
    ' 配置启动时最大化、禁用自动化提示、跳过配置文件选择
    .SetCapability "ms:edgeOptions", "{""excludeSwitches"":[""enable-automation""],""start-maximized"":true,""useAutomationExtension"":false,""profile-directory"":""Default""}"
    .Start
    .Wait 2000 ' 延长等待时间确保页面加载稳定
    
    ' 后续直接执行业务逻辑,无需再调用.Window.Maximize
    .Get "https://www.google.com"
End With

方案2:强制切换到活动窗口后执行最大化

如果必须保留模拟点击逻辑,在执行最大化前强制切换到当前活动窗口:

Set oEdgeObject = CreateObject("Selenium.EdgeDriver")
With oEdgeObject
    On Error GoTo SiteHandler
    .SetCapability "ms:edgeOptions", "{""excludeSwitches"":[""enable-automation""]}"
    .Start
    .Wait 1000

    Call LeftClick(600, 400)
    .Wait 1000
    
    ' 强制切换到第一个窗口(或遍历窗口列表找到有效窗口)
    .SwitchToWindow .WindowHandles(0)
    .Window.Maximize
End With

方案3:升级SeleniumBasic版本

SeleniumBasic-2.0.9.0可能存在与Edge 119的兼容性问题,尝试升级到最新版本(需确保与Edge Driver版本严格匹配)。

说明

Edge 119版本对自动化窗口的管理逻辑有调整,原有窗口切换和等待逻辑无法适配新版本的页面加载流程,通过提前配置启动参数或强制窗口切换可解决该问题。

内容的提问来源于stack exchange,提问作者JoshSavage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:46:07