【发布时间】:2014-12-18 07:07:10
【问题描述】:
2014-10-23 更新:tl;dr:打开交互模式/交互登录。
加长版:我们找到了解决方法。启用交互模式(基本上是打开的 RDP 会话)允许执行测试。以前人们必须这样做才能获得 Selenium/etc。跑步。在 Visual Studio 2010 中,它已被修复。但似乎有些东西倒退了。我们的设置是一个 Windows VM,上面安装了 TFS 的构建控制器组件。我们的理论是阻止构建控制器与桌面交互,或者有不同的网络或安全设置阻止与 webdriver 交互。我们将向 Microsoft 开一张票,看看他们是否可以修复此回归问题。
我知道间歇性地出现此类超时的问题。这不是那个问题。对于所有 Selenium 操作(单击、查找元素等),我 100% 的时间都会超时。
我的测试连续几天完美运行,然后某些东西在服务器上发生了变化。我的 WebDriver 没有改变。仍然使用与以前相同的 ChromeDriver.exe。我的代码没有改变。据我所知,构建定义没有改变。
我们尝试过的事情:
- 关闭可能干扰的防火墙
- 重启服务器
- 关闭并行测试运行
- 回滚最近的 Windows 更新
我现在不知道还能尝试什么。想法?
我们在版本级别 2.40 上运行 .NET 绑定。 (我知道那里有 2.43.1 更新,但我怀疑它会有所帮助)。 ChromeDriver.exe 应该是最新的稳定版本;我最近查了一下。
错误信息:
测试方法 Company.BlackBoxTests.WebUI.Portal.Tests.LocationsShould.AddPlan 抛出异常:
OpenQA.Selenium.WebDriverException:对 URLhttp://localhost:40901/session/37a7c64c5ef189acf896ff9d3af34e67/execute的远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。 ---> System.Net.WebException: 操作超时
错误堆栈跟踪:
System.Net.HttpWebRequest.GetResponse()
OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScriptCommand(String script, String commandName, Object[] args)
OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScript(String script, Object[] args)
Company.BlackBoxTests.WebUI.Portal.PageObjects.BasePage.WaitForAjax(IWebDriver driver, String action, Boolean longWait)
【问题讨论】:
-
网络人“修复”了什么?
-
什么版本的 ChromeDriver + Chrome? (两者齐头并进)。
-
ChromeDriver 是 v2.9.248315。所以看起来我落后了两个版本。 Chrome 版本我还不确定。当我收到管理员的消息时会更新此评论。
-
Chrome 版本为 38.0.2125.104 m
-
我目前正在尝试更新到 ChromeDriver 2.11 和 2.43.1 .NET Selenium 绑定,看看它是否会有所作为。
标签: c# http selenium tfs timeout