Selenium测试在IE11中不起作用

时间:2016-08-17 13:20:20

标签: c# testing selenium-webdriver automated-tests internet-explorer-11

我正在使用C#+ Selenium WebDriver进行自动化测试。我坚持这个问题,IE11的测试不起作用,但在Firefox,Chrome,IE10上工作。

问题出在下一部分代码中:

    try
    {
        (new WebDriverWait(driver, TimeSpan.FromMilliseconds(PAGELOAD_DELAY))).
            Until(driver1 => ((IJavaScriptExecutor)driver).
                ExecuteScript("return document.readyState").Equals("complete"));
    }
    catch (WebDriverTimeoutException ex1) 

VS2015调试器出错:

VS2015 debug error

我已经尝试了下一个,但它没有帮助

  • 在IE11保护模式下关闭/打开所有位置
  • 在注册表中添加[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DISABLE_INTERNAL_SECURITY_MANAGER][HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE]
  • 不同版本的Selenium WD
  • IE11 WebDriver的x32和x64版本
  • Microsoft IE11 WebDriver

我的测试环境:

  • Windows 8.1 x64
  • VisualStudio 2015
  • Selenium WebDriver 3.0.0 beta2
  • IEDriverServer Win32 2.53.1
  • NUnit 3.4.1

UPD1

  1. 尝试将网站添加到“兼容性视图列表”
  2. 尝试this solution
  3. 尝试this solution
  4. 没有结果,同样的错误

    UPD2

    我创建了一个简单的项目来检查IE11驱动程序。代码是下一个:

        [TestMethod]
        public void TestMethod1()
        {
            IWebDriver driver = new InternetExplorerDriver();
            driver.Navigate().GoToUrl("http://google.com");
            try
            {
                (new WebDriverWait(driver, TimeSpan.FromMilliseconds(10000))).
                Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.Name("q")));
            }
            catch (WebDriverTimeoutException ex)
            { }
            driver.FindElement(By.Name("q")).SendKeys("123");
        }
    

    谷歌的页面已打开,但我在调试期间遇到错误:

        Result StackTrace:  
        at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
           at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
           at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)
           at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementByName(String name)
           at OpenQA.Selenium.By.<>c__DisplayClassa.<Name>b__8(ISearchContext context)
           at OpenQA.Selenium.By.FindElement(ISearchContext context)
           at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)
           at UnitTestProject1.UnitTest1.TestMethod1() in C:\dev\VS2015\Projects\UnitTestProject1\UnitTestProject1\UnitTest1.cs:line 21
        Result Message: 
        Test method UnitTestProject1.UnitTest1.TestMethod1 threw exception: 
        OpenQA.Selenium.NoSuchElementException: Unable to find element with name == q
    

    是否有可能在IE11下运行硒测试,或者它的驱动程序完全坏了?

    测试项目的配置:

    • VisualStudio 2015
    • Nuget Selenium.WebDriver 2.53.1
    • Nuget Selenium.Support 2.53.1
    • Nuget Selenium.WebDriver.IEDriver 2.53.1.1

1 个答案:

答案 0 :(得分:0)

检查浏览器的模拟模式

Microsoft Edge? IE 11?

将其设置为IE 11。