C# Selenium错误:服务器没有响应urlhttp://localhost:7055

C# Selenium错误:服务器没有响应urlhttp://localhost:7055,c#,selenium,nunit,C#,Selenium,Nunit,我正在使用Selenium、C#、NUnit编写测试,有时会出现以下错误:- OpenQA.Selenium.WebDriverException:服务器没有响应url httö/löcalhost:7055/hub/session/8dd13f5c-7ca6-4aa6-babc-f0ff6d940f0a/element 下面是堆栈跟踪: OpenQA.Selenium.WebDriverException:服务器没有响应url httö/localhost:7055/hub/session/8

我正在使用Selenium、C#、NUnit编写测试,有时会出现以下错误:-

OpenQA.Selenium.WebDriverException:服务器没有响应url httö/löcalhost:7055/hub/session/8dd13f5c-7ca6-4aa6-babc-f0ff6d940f0a/element

下面是堆栈跟踪:

OpenQA.Selenium.WebDriverException:服务器没有响应url httö/localhost:7055/hub/session/8dd13f5c-7ca6-4aa6-babc-f0ff6d940f0a/element 在 OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest 请求)在 c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:line 115位于OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令 命令执行)在 c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:line 96 at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Execute(命令 命令执行)在 c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\Internal\ExtensionConnection.cs:line 128位于OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2个参数) c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 795位于OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(字符串 中的机制(字符串值) c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 836位于OpenQA.Selenium.Remote.RemoteWebDriver.FindElementById(字符串 id)在 c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 431在OpenQA.Selenium.By.c__DisplayClass2.b__0(ISearchContext (上下文)在 c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\By.cs:at的第102行 中的OpenQA.Selenium.By.FindElement(ISearchContext上下文) c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\By.cs:第272行 中的OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By) c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 289 at

.共享服务专家:CreateShareWidget() 出现此错误的代码:

Driver.SwitchTo().Frame(frameElement);    
var wait = new WebDriverWait(parentContextable.Context.Driver, Timeout);
IWebElement element = wait.Until(d => Driver.FindElement(By.TagName(Tags.Body))); // error in this line
我发现这个错误只能在以下几行Selenium实现代码中抛出:

private static Response CreateResponse(WebRequest request)
        {
            Response commandResponse = new Response();

            HttpWebResponse webResponse = null;
            try
            {
                webResponse = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException ex)
            {
                webResponse = (HttpWebResponse)ex.Response;
            }

            if (webResponse == null)
            {
                throw new WebDriverException("No response from server for url " + request.RequestUri.AbsoluteUri);
            }
            else
            { ...
也许有人知道为什么request.GetResponse()返回null,或者如果失败,为什么ex.Response也返回null

(09.09.2012)抱歉,可能我没有提供所有信息。我正在使用FireFox驱动程序,Win7,Selenium 2.25.1。我的考试有时不及格。调试模式下的测试失败的频率低于发布模式

我找到了发生这种情况的可能原因。如果我写了这样的代码:

Driver.SwitchTo().Frame(frameElement);    
var wait = new WebDriverWait(parentContextable.Context.Driver, Timeout);
Tread.Sleep(250);
IWebElement element = wait.Until(d => Driver.FindElement(By.TagName(Tags.Body)));

测试运行正常。但是,睡眠是一个糟糕的解决方案。也许有人能找到另一个更好的解决方案。

你在用IE吗?我得到了这个,直到我发现我可以通过对象上的config设置基本URL。否则,您将看到的第一个页面是由Selenium生成的,并且它似乎错过了“真正”请求的提示


我在测试中使用了
TextFixtureSetup
方法。

在这里找到了以下解决方法:


我遇到了同样的问题,并通过以下方式解决:

a) 避免使用诸如“do wity retry”之类的方法来操作iWebElement,因为这样一来,测试需要花费很多时间来运行,是不必要的,而且测试会间歇性失败

b) 将Firefox版本降级为5(可能从FF3.6降到6,但FF的新版本会引发间歇性异常,如“集线器/会话无响应…”


c) 如果您需要在测试中处理通过Ajax在页面上加载的元素,请确保提供一个js函数,您可以停止元素加载,因此您应该在FindElement之前从WebDdriver调用此函数,然后
执行您想要的操作

检查您的Windows防火墙设置?只是想知道,您是否尝试过切换到其他选择器?只是想知道错误是否只在使用特定选择器时发生(有时)。InitialBrowserUrl属性与IE驱动程序“缺少”任何内容无关。当用户无法设置浏览器的保护模式设置时,它只是一个小小的帮助,因为过度热心的系统管理员错误地锁定了他们的机器。如果您能够在您的环境中设置IE的受保护模式属性,则应该这样做。给出了为什么需要进行此黑客攻击的历史原因。感谢您的洞察力,Jim,获得一些幕后故事总是很棒(特别是来自内部人士)。但是受保护模式的设置对我来说不起作用,也不会反映在操作文本(或错误)中。它不会改变这样一个事实,即如果您尝试执行一个请求而不设置此选项,您可能会遇到上述问题(正如我所做的那样)。最初的请求从未被测试脚本看到,您会得到“无响应”文本。
 var options = new InternetExplorerOptions()
 {
     InitialBrowserUrl = _baseUrl,
     IntroduceInstabilityByIgnoringProtectedModeSettings = true
 };

 _driver = new InternetExplorerDriver(_ieDriverServerPath, options);