Я работаю с тестами автоматизации на C# + Selenium WebDriver. Я столкнулся с проблемой, тесты на IE11 не работают, но работают на Firefox, Chrome, IE10. Тесты на селен не работают в IE11
Проблема заключается в следующей части кода:
try
{
(new WebDriverWait(driver, TimeSpan.FromMilliseconds(PAGELOAD_DELAY))).
Until(driver1 => ((IJavaScriptExecutor)driver).
ExecuteScript("return document.readyState").Equals("complete"));
}
catch (WebDriverTimeoutException ex1)
Ошибка из VS2015 отладчика:
Я попытался следующий, но это не помогло
- В режиме защиты 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
- как x32 и x64 версии IE11 WebDriver
- Microsoft IE11 WebDriver
Моя тестовая среда:
- для Windows 8,1 x64
- VisualStudio 2015
- Селен WebDriver 3.0.0 beta2
- IEDriverServer Win32 2.53.1
- NUnit 3.4.1
UPD1
- Пробовал добавить веб-сайт в разделе "Совместимость просмотр списка"
- Пробные this solution
- Пробные 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");
}
был открыта страница с Google, но я получил сообщение об ошибке во время отладки:
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
По умолчанию режим Edge. Я не могу изменить режим по умолчанию в IE11 для всех сеансов. Возможно, это можно настроить из кода, но не уверен. Я добавил свой веб-сайт в «Список представлений совместимости», поэтому сайт должен быть открыт в режиме IE7. Но у меня такая же ошибка. –