Здравствуйте!
Помогите, пожалуйста, найти ошибку в настройках:
Windows 8.1 x64, IE11 11.0.9600.17498
Произведены настройки регистра: создан раздел HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE, в него добавлен элемент DWORD с названием iexplore.exe и значением 0. После этого ПК перезагружен.
В проект через нугет установлены ссылки на Webdriver и WebDriver.Support версии 2.44
(packages.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Selenium.Support" version="2.44.0" targetFramework="net45" />
<package id="Selenium.WebDriver" version="2.44.0" targetFramework="net45" />
</packages>
)
В PATH положен IEDriverServer.exe версии 2.44
(Protected Mode выключен на всех уровнях безопасности).
Создан специальный проект в Visual Studio 2012 для тестирования работоспособности тестов (после того, как мои работавшие тесты обвалились с ошибкой NoSuchElementException), со следующим кодом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace test_selenium2_44
{
[TestClass]
public class Test
{
[TestMethod]
public void testMethod()
{
IWebDriver Driver = new InternetExplorerDriver();
Driver.Manage().Window.Maximize();
WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(30));
IWebElement button = wait.Until(ExpectedConditions.ElementExists(By.Name("text")));
button.SendKeys("test");
}
}
}
Получаю Exception с стэктрейсом:
Test Name: testMethod
Test FullName: test_selenium2_44.Test.testMethod
Test Source: c:\Users\anna\Documents\Visual Studio 2012\Projects\test_selenium2-44\test_selenium2-44\Program.cs : line 25
Test Outcome: Failed
Test Duration: 0:00:33,8764258
Result Message:
Test method test_selenium2_44.Test.testMethod threw exception:
OpenQA.Selenium.WebDriverTimeoutException: Timed out after 30 seconds ---> OpenQA.Selenium.NoSuchElementException: Unable to find element with name == text
Result StackTrace:
в OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
в OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
в OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)
в OpenQA.Selenium.Remote.RemoteWebDriver.FindElementByName(String name)
в OpenQA.Selenium.By.<>c__DisplayClassa.<Name>b__8(ISearchContext context)
в OpenQA.Selenium.By.FindElement(ISearchContext context)
в OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)
в OpenQA.Selenium.Support.UI.ExpectedConditions.<>c__DisplayClass7.<ElementExists>b__6(IWebDriver driver)
в OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)
--- End of inner exception stack trace ---
в OpenQA.Selenium.Support.UI.DefaultWait`1.ThrowTimeoutException(String exceptionMessage, Exception lastException)
в OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)
в test_selenium2_44.Test.testMethod() в c:\Users\anna\Documents\Visual Studio 2012\Projects\test_selenium2-44\test_selenium2-44\Program.cs:строка 46
Логи я не знаю, где смотреть :( Свои записывать пока не умею.
если InternetExplorerDriver() заменить на FirefoxDriver(), то всё работает (результат - заполнено поле поисковой строки словом "test").