我很难建立一个支持Selenium测试的可伸缩解决方案。首先,Edge不能作为Windows服务运行。其次,一次只能在一台机器上运行一个边缘测试实例。第三,当使用虚拟Windows 10机器承载节点和边缘时,当远程桌面会话断开时,测试就会失败。
以下是断开到Windows 10虚拟机的远程桌面连接(但用户仍然登录到VM)时发生的错误:
结果消息:初始化方法SeleniumTests.LeftNavigationTests.Init抛出异常。System.InvalidOperationException: System.InvalidOperationException:由于窗口当前不可用,窗口大小操作失败。
只有当远程会话未激活时,才会出现此问题。连接时测试运行良好。
有没有人见过这个问题,发现过它的一条路?任何帮助都将不胜感激!
系统信息:
发布于 2018-08-15 11:05:59
看起来这就是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.如果桌面锁定有问题,可以尝试更改注册表中的下列设置。
另一个问题是Edge似乎一次只支持一个Selenium会话。这使得扩展测试变得非常困难。
https://stackoverflow.com/questions/51029959
复制相似问题