1

我正在使用C#+ Selenium WebDriver進行自動化測試。我遇到了這個問題,在IE11上測試不起作用,但在Firefox,Chrome,IE10上工作。 Selenium測試在IE11中不起作用

問題是在代碼的下一個部分:

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]
  • 不同版本硒WD的
  • IE11 webdriver的兩個X32和x64版本
  • Microsoft IE11 WebDriver

我的測試環境:

  • 的Windows 8.1 x64的
  • 的VisualStudio 2015年
  • 硒的webdriver 3.0.0β2
  • IEDriverServer的Win32 2.53.1
  • NUnit的3.4.1

UPD1

  1. 嘗試添加Web站點以 「兼容性視圖列表」
  2. 試過this solution
  3. 試過this solution

沒有結果,同樣的錯誤

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下運行Selenium測試,或者它的驅動程序完全打破?從測試項目

配置:

  • 的VisualStudio 2015年
  • 的NuGet Selenium.WebDriver 2.53.1
  • 的NuGet Selenium.Support 2.53。1
  • 的NuGet Selenium.WebDriver.IEDriver 2.53.1.1

回答

0

檢查瀏覽器

微軟邊緣的仿真模式? IE 11?

將其設置爲IE 11。

+0

默認模式是邊緣。我無法在IE11中更改所有會話的默認模式。也許可以從代碼設置,不確定。我已將我的網站添加到「兼容性視圖列表」中,因此網站應以IE7模式打開。但我得到了同樣的錯誤。 –