1

我正在努力建立一个可扩展的解决方案来支持 Selenium Edge 测试。首先,Edge 不能作为 Windows 服务运行。其次,一次只能在一台机器上运行一个 Edge 测试实例。第三,当使用虚拟 Windows 10 机器托管节点和 Edge 时,远程桌面会话断开时测试会失败。

以下是与 Windows 10 虚拟机的远程桌面连接断开时发生的错误(但用户仍登录到 VM):

结果消息:初始化方法 SeleniumTests.LeftNavigationTests.Init 抛出异常。System.InvalidOperationException:System.InvalidOperationException:窗口大小操作失败,因为窗口当前不可用。

仅当远程会话不活动时才会出现此问题。连接时测试运行良好。

有没有人以前见过这个问题并找到解决方法?任何帮助将不胜感激!

系统信息:

  • Windows 10 虚拟机:版本 10.0.15063 Build 15063
  • 微软边缘 40.15063.674.0
  • 微软 EdgeHTML 15.15063
  • 微软网络驱动程序:15063
  • 硒:3.12.0
  • Selenium 节点正在 Windows 10 VM 的控制台窗口中运行。
4

1 回答 1

0

看起来这就是 Edge 当前的设计方式。当桌面处于非活动状态时,浏览器不再以相同的方式工作。就像应用程序在生命周期中进入活动内存一样。

我发现的唯一解决方法是运行一个批处理文件,使您的会话保持活动状态,同时将您踢出远程会话,就好像另一个用户正在尝试启动新的远程会话一样。这是批处理文件的内容。

Create a batch file with this code called DisconnectRDP and run as administrator:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)
Create a desktop shortcut to this file. To do this, right-click the batch file and select Send to | Desktop (create shortcut).
In the shortcut properties, click Advanced and select Run as administrator.

如果您遇到桌面锁定问题,您可以尝试更改注册表中的以下设置。

  1. 打开注册表(在本地 Windows 搜索 regedit)
  2. 导航到注册表中的以下文件夹:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
  3. 将 AutoAdminLogon 设置为 1
  4. 如果需要,设置 DefaultDomainName
  5. 设置默认用户名
  6. 创建 DefaultPassword 并酌情设置

另一个问题是 Edge 似乎一次只支持一个 Selenium 会话。这使得难以扩展测试。

于 2018-08-15T11:05:59.180 回答