Internet explorer 除非登录,否则Selenium不会在远程计算机上使用Internet Explorer

Internet explorer 除非登录,否则Selenium不会在远程计算机上使用Internet Explorer,internet-explorer,selenium-webdriver,virtual-machine,remote-desktop,remotewebdriver,Internet Explorer,Selenium Webdriver,Virtual Machine,Remote Desktop,Remotewebdriver,我使用Selenium IE WebDriver(最新版本2.46)在IE上执行测试。设置为: 我用詹金斯来触发我的测试 IE位于远程虚拟机上,测试也在该虚拟机上放置和执行 问题是一些测试需要浏览器窗口焦点,而测试由于焦点问题而失败。当我登录到虚拟机时,这些问题就消失了,即使虚拟机的远程桌面连接被最小化。即使我使用一个用户运行Jenkins作业,并且使用另一个用户登录到计算机,这也不是问题。问题是,当我关闭远程连接时,测试再次失败。我不确定这与打开的连接有什么关系,以及如何在机器上检测鼠标移

我使用Selenium IE WebDriver(最新版本2.46)在IE上执行测试。设置为:

  • 我用詹金斯来触发我的测试
  • IE位于远程虚拟机上,测试也在该虚拟机上放置和执行
问题是一些测试需要浏览器窗口焦点,而测试由于焦点问题而失败。当我登录到虚拟机时,这些问题就消失了,即使虚拟机的远程桌面连接被最小化。即使我使用一个用户运行Jenkins作业,并且使用另一个用户登录到计算机,这也不是问题。问题是,当我关闭远程连接时,测试再次失败。我不确定这与打开的连接有什么关系,以及如何在机器上检测鼠标移动


有没有人遇到过这样的问题,也许可以提供帮助?

我的建议:某种类型的侦听器+自动登录()

侦听器“侦听”来自Jenkins服务器的指令-这可能是一些非常愚蠢的东西,比如远程PSExec(例如:)或其他东西(取决于堆栈)

“自动登录”保证您指定的用户自动登录,并在计算机上拥有完整的会话(而不是远程桌面会话)。在该会话下,您可以运行任何您想要的内容。登录(调试失败的测试)包括以不同的用户身份登录,运行
autologon/delete
,然后运行任务管理器->用户->用户->连接

有道理吗?如果我能帮你解释更多,请告诉我


/cd

这里是临时解决方案。使用以下代码创建bat文件:

对于/f%%i in('qwinsta^ | findstr“>rdp tcp#“')是否设置rdp#u会话=%i
::剥去衣服>
设置RDP\U会话=%RDP\U会话:>=%
tscon%RDP_会话%/dest:控制台
echo y|rwinsta 65536

我测试了它,它工作正常。
来源:

问题在于远程桌面如何工作-它接管机器上的会话,当您断开连接(甚至最小化远程桌面窗口)时,该会话将变为非活动状态(有充分的理由)。您看到的是该行为的结果。这不是会话中的问题,因为对于其他浏览器,驱动程序的selenium focus方法按预期工作。。。而且对于IE10和IE11也没有这样的问题-只有IE9…我知道用户可以使用会话。但这并不能解决问题。只有当我登录到机器上时,测试才能正确执行,但是没有登录,用户可用于会话。。。奇怪的是,我只在IE9上观察到这一点。对于IE10或11,问题并不存在。这就是为什么我认为这是一个服务或一些附加组件或插件在浏览器中的问题。。。不知道要检查什么…您好,我已经尝试使用Jenkins的以下命令:D:\Scripts\PsExec.exe\\computer-u-pd:\Scripts\autogon.exe,但结果是一样的。。。我开始认为我需要在测试期间从Jenkins打开一个远程桌面会话…我认为我没有正确解释:)Autogon.exe确保有一个活动的登录会话(重新启动后)。因此,您的过程是:1)在远程计算机上运行autogon.exe 2)重新启动计算机(使自动登录生效)-计算机现在可以接受命令。3) 使用psexec运行测试