远程桌面,Selenium和SendKeys:WebDriver服务器在60秒后超时

问题描述 投票:0回答:2

我有一个Selenium测试,当在vSphere中托管的节点上作为Jenkins作业的一部分运行并通过RDP管理时,该测试将失败。测试使用IE11运行。

经过一些故障排除后,如果远程桌面已连接并聚焦,则会成功,但如果远程桌面断开连接或甚至最小化,则会失败并出现异常:

OneTimeSetUp: OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:56095/session/817b36df-a1b5-484e-b205-d4a0bac8002a/element/0cfa6678-2104-4bc6-bb71-e6d8eac507fb/value timed out after 60 seconds.
  ----> System.Net.WebException : The operation has timed out

失败的路线:

textboxElement.SendKeys("foo").Perform();

作为一种解决方法,我通过vSphere Console而不是RDP进行了登录,然后即使在关闭vSphere之后,测试也不再失败。这是一种解决方法,但我必须要小心,永远不要通过RDP登录,并且始终只能通过vSphere控制台进行管理。

所以我的问题是:

  • SendKeys()是否与RDP会话不相容,是否与to this winapi bug相关?
  • 有没有在Selenium中使用SendKeys()的替代方案?
c# selenium remote-desktop
2个回答
0
投票

当您执行selenium脚本而没有任何UI环境绑定到进程时,Chrome窗口的大小可能与您使用RemoteDesktop登录时执行时不同。

尝试在失败命令之前在selenium脚本中显式设置窗口大小。 1)尝试一些小宽度/高度并在脚本通常成功的地方执行它,看看会发生什么2)设置为一些大值并在Jenkins上执行它,它通常会失败。


0
投票

找到了罪魁祸首 - 在RequireWindowFocus = true有一面旗帜InternetExplorerOptions引起了这个问题。删除后我不再收到错误。这可能与https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/5431有关。

© www.soinside.com 2019 - 2024. All rights reserved.