Почему Selenium InternetExplorerDriver Webdriver очень медленный в режиме отладки (visual studio 2010 и IE9)
Я использую код примера с сайта SeleniumHq, но в режиме отладки производительность ужасная.
В режиме выпуска весь тест занимает около 6 секунд (включая запуск и закрытие IE)
В режиме отладки требуется 65 секунд?
Пример кода:
[Test]
public void testBrowser()
{
// Do something here
IWebDriver driver = new InternetExplorerDriver();
//Notice navigation is slightly different than the Java version
//This is because 'get' is a keyword in C#
driver.Navigate().GoToUrl("http://www.google.com");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Cheese");
System.Console.WriteLine("Page title is: " + driver.Title);
// TODO add wait
driver.Quit();
}
Я пробовал его в ie8 и имел ту же производительность. Firefox в порядке, но мои клиенты используют IE, поэтому я застрял в тестировании против него. Кроме того - у меня нет таких же проблем, если я использую Selenium RC.
NB - я использую .Net 4 и последнюю версию (2.16) webDriver.dll(работает в 64-битном окне окна 7)
Ответы
Ответ 1
Для меня исправить было переход на 32-битную версию InternetExplorerDriver.exe
из https://code.google.com/p/selenium/downloads/list
Кажется, теперь он называется IEDriverServer
, но работает, если вы просто переименовали его в InternetExplorerDriver.exe
.
Ответ 2
check 'prefer 32 bit' не проверяется в ваших свойствах сборки. Если это так, и вы используете 64-битный IE-драйвер, он будет работать как астматическая улитка.
Ответ 3
Используя клиент С#, NUnit, С# webdriver и IEDriverServer, у меня изначально возникла проблема с медленным вводом (например, передача ключей в поле ввода занимает около 5 секунд между клавишами или нажатие кнопки такой же задержки),
Затем, прочитав этот поток, я переключился на 32-битный IEDriverServer и, похоже, решил проблему.
Но сегодня я экспериментировал с объектом InternetExplorerOptions, чтобы установить некоторые параметры в IE в соответствии с этой документацией:
https://code.google.com/p/selenium/wiki/InternetExplorerDriver
В документации я создал значение реестра HKCU\Software\Microsoft\Internet Explorer\Main\TabProcGrowth со значением 0 для использования ForceCreateProcessApi = true и BrowserCommandLineArguments = "-private."
После этого я заметил, что проблема с медленным входом была возвращена. Я внес несколько изменений в свой код, но после того, как все они вернулись, проблема все еще сохранялась. Однако, когда я удалил вышеупомянутый раздел реестра, вход вернулся на полную скорость (без задержки).