我有一个Selenium测试,当作为Jenkins作业的一部分在vSphere中托管并通过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控制台而不是RDP登录,然后即使在关闭vSphere之后,测试也不再失败。这是一个变通办法,但我必须小心,永远不要通过RDP登录,并且始终只通过vSphere控制台进行管理。
所以我的问题是:
SendKeys()
的替代方案相关?发布于 2019-04-11 00:50:29
当您在没有任何UI环境绑定到进程的情况下执行selenium脚本时,Chrome窗口的大小可能与您使用RemoteDesktop登录时执行它时的大小不同。
在失败的命令之前,尝试在selenium脚本中显式设置窗口大小。1)尝试一些小的宽度/高度,并在脚本通常成功的地方执行它,看看会发生什么。2)设置一些较大的值,然后在Jenkins上执行它,在那里它通常会失败。
发布于 2019-04-11 04:02:24
找到罪魁祸首- InternetExplorerOptions
中存在导致问题的标志RequireWindowFocus = true
。在删除它之后,我不再得到错误。这可能与https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/5431有关。
https://stackoverflow.com/questions/55615331
复制相似问题