在TFS服务器上运行的C#Selenium测试的常量HTTP请求超时
更新2014-10-23:tl; dr:启用交互模式/交互式登录.
更长版本:我们找到了一种解决方法.启用交互模式(基本上是一个开放的RDP会话)允许执行测试.以前人们不得不这样做以获得Selenium / etc.跑步.在Visual Studio 2010中,它已得到修复.但似乎有些事情已经退步了.我们的设置是一个Windows VM,其上安装了TFS的构建控制器组件.我们的理论是防止构建控制器与桌面交互,或者存在阻止与webdriver交互的不同网络或安全设置.我们打算与微软公开一张票,看看他们是否能解决这个问题. 我知道间歇性地获得这些超时的问题.这不是那个问题.对于所有Selenium操作(点击,查找元素等),我有100%的时间获得超时. 我的测试连续几天运行良好,然后在服务器上发生了一些变化.我的WebDriver没有改变.仍然使用与以前相同的ChromeDriver.exe.我的代码没有改变.据我所知,构建定义没有改变. 我们尝试过的事情: >关闭可能干扰的防火墙 我不知道还有什么可以尝试.想法? 我们在版本级别2.40运行.NET绑定. (我知道那里有2.43.1更新,但我怀疑它会有所帮助). ChromeDriver.exe应该是最新的稳定版本;我最近查了一下. 错误信息:
错误堆栈跟踪: 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) 解决方法
正如您所说:启用交互模式(基本上是一个开放的RDP会话)允许执行测试.
另一种解决方案:如果您将TFS代理作为服务运行,请务必选中“允许服务与桌面交互” 如果您的应用程序无法作为本地系统帐户运行,则这可能不起作用.在这种情况下,您不能将代理作为服务运行;您只能在交互模式下运行它.到目前为止,我通过这种方式获得了良好的服务效果. 注意,我也必须这样做:在启动ChromeDriver时添加“no-sandbox”标志 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |