我使用 VBA/Selenium/Edge 来自动化多个文件。几周前,我使用的是 Edge/Edge Driver 的
118
版本,一切正常。我周一来上班,用的是 Edge 版本119
。更新了边缘驱动程序以匹配,119.0.2151.44
。从那时起,Edge/Driver 都已更新为 119.0.2151.58
并出现相同的错误。它挂起的代码部分是窗口的最大化。
有或没有
SwitchToNextWindow
的错误:
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)
从视觉上看会发生什么: 打开小框以选择用户名(由
SetCapability
处理,因此它会自动消失。)
Edge 窗口打开并显示一条消息,表明用户已被选择。
鼠标移动到消息框点击确定
尝试最大化窗口时出现代码错误。
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
目标: 打开 Edge,登录用户,最大化窗口,执行其余代码。
编辑: 尝试使用
get
和不带 SetCapability
。 SetCapability
自动登录,当我手动选择配置文件时,它会执行相同的操作。打开一个正常的 Edge 窗口,并显示 X 用户已登录,并给出相同的错误。
尝试使用 get
而不使用 SetCapability
并且不手动选择配置文件。单击 F8
直至 get
命令会在小伪 Edge 窗口中打开网站。该窗口无法最大化,也没有地址栏,我认为还缺少其他多个东西。不幸的是,我太新了,无法发布图片。
编辑版本:
SeleniumBasic-2.0.9.0
更新至 Edge/驱动程序版本 119.0.2151.72
是的,当我说用户登录时,我指的是 Edge 配置文件。
我尝试了多个网址。默认情况下,我有一个变量,根据我正在运行的模块填写网站。我尝试用 Google 地址手动填写变量。每次结果都一样。
现在不支持Selenium 2,我们建议您更新到最新版本的selenium(selenium 4或更高版本)看看这个问题是否仍然存在。