Selenium错误:服务器没有响应url http:// localhost:7055

Fri*_*gik 15 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:服务器对OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest请求)中的url htt:// localhost:7055/hub/session/8dd13f5c-7ca6-4aa6-babc-f0ff6d940f0a/element没有响应c:\ Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:第115行,位于c:\ Projects\WebDriver\trunk\dotnet\src中的OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令commandToExecute)\WebDriver\Remote\HttpCommandExecutor.cs:在c:\ Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\Internal\ExtensionConnection.cs中的OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Execute(命令commandToExecute)中的第96行:OpenQA.Selenium中的第128行.在OpenQA.Selenium的c:\ Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:第795行中的OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute,Dictionary`2参数) .Remote.RemoteWebDriver.FindElement(字符串机制,字符串值)在c:\ Projects\WebDriver\trunk\dotnet\s中 rc\WebDriver\Remote\RemoteWebDriver.cs:第836行,位于c:\ Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs中的OpenQA.Selenium.Remote.RemoteWebDriver.FindElementById(String id):第431行at OpenQA.Selenium.By.<> c__DisplayClass2.b__0(ISearchContext context)位于c:\ Projects\WebDriver\trunk\dotnet\src\WebDriver\By.cs:第102行,位于OpenQA.Selenium.By.FindElement(ISearchContext context)在c:\ Projects\WebDriver\trunk\dotnet\src\WebDriver\By.cs:第272行的OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)in c:\ Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:第289行

####.##.#####.#########.#####.ShareServicesTest.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
Run Code Online (Sandbox Code Playgroud)

我发现这个错误只能在这行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
            { ...
Run Code Online (Sandbox Code Playgroud)

也许有人知道为什么request.GetResponse()返回null,或者如果它失败,为什么ex.Response也为null?

(09.09.2012)抱歉,也许我没有提供所有信息.我正在使用FireFox驱动程序,Win7,Selenium 2.25.1.我的测试有时只会失败.在调试模式下进行测试失败的频率低于Release.

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

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)));
Run Code Online (Sandbox Code Playgroud)

测试运行正常.但Thread.Sleep是不好的解决方案.也许有人可以找到另一个更好的解决方案.

Mis*_*mes 1

你用的是IE吗?我一直在得到这个,直到我发现我可以通过对象上的配置来设置基本 URL。否则,它带您进入的第一页是由 Selenium 生成的页面,并且它似乎错过了“真实”请求的线索。

 var options = new InternetExplorerOptions()
 {
     InitialBrowserUrl = _baseUrl,
     IntroduceInstabilityByIgnoringProtectedModeSettings = true
 };

 _driver = new InternetExplorerDriver(_ieDriverServerPath, options);
Run Code Online (Sandbox Code Playgroud)

TextFixtureSetup在测试的方法中使用了它。