服务器没有响应url - Selenium WebDriver(C#)

时间:2013-01-31 02:05:52

标签: selenium-webdriver

更新

我在更新到2.29之后遇到了同样的问题。它的非常不一致就是挫折部分。

更新结束:

Selenium WebDriver 2.25版本。 浏览器:FF(17.0.1版)& IE(8)

最令人讨厌/让我疯狂的一件事就是过时的元素,我仍然不确定我的测试用例怎么能一直运行;有时我的测试用例通过了,有些时候失败了,我正在使用CSSSelector来查找元素,但是我的测试用例仍处于打开/关闭状态....

这是我用来查找元素的内容。

这是我在C#中的代码

public class WebDriverUtil
{
       public static IWebDriver driver = StartBrowser();
       private static FirefoxProfile _ffp;
       private static IWebDriver _driver;

        private static IWebDriver StartBrowser()
        { 
            switch (Common.BrowserSelected)
            {
                case "ff":
                    _ffp = new FirefoxProfile();
                    _ffp.AcceptUntrustedCertificates = true;
                    _driver = new FirefoxDriver(_ffp);
                    break;
                case "ie":                    
                    var options = new InternetExplorerOptions();
                    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
                    _driver = new InternetExplorerDriver(options);
                    _driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
                    break;
                case "chrome":
                    //_driver = new ChromeDriver();
                    break;
            } 
            return _driver;
        }    

        public static IWebElement WaitForElement(By by)
        {
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
            return wait.Until(drv => drv.FindElement(by));
        }
}


public class TestCaseEmployee: WebDriverUtil
{
   public static bool EmployeeCase()
   {
      //....
      WaitForElement(By.LinkText("Select All Employee")).Click(); //<<< see error below
   }
}

//错误消息:

Test 'M:TestCases.TestCaseEmployee' failed: No response from server for url http://localhost:7056/hub/session/79b742cf-e1dc-4016-bdbb-c2de93cd8fa4/element
    OpenQA.Selenium.WebDriverException: No response from server for url http://localhost:7056/hub/session/79b742cf-e1dc-4016-bdbb-c2de93cd8fa4/element
    at OpenQA.Selenium.Support.UI.DefaultWait`1.PropagateExceptionIfNotIgnored(Exception e)
    at OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)

1 个答案:

答案 0 :(得分:0)

我有同样的问题并以这种方式解决:

a)避免使用类似的方法重做&#39;操作IWebElements,因为这样测试需要花费很多时间才能运行,这是不必要的,测试会间歇性地失败。

b)将Firefox版本降级为5(可能从FF 3.6降级到6工作正常,但新版本的FF会引发间歇性异常,例如&#39;没有来自集线器/会话的响应......&#39; < / p>

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