为什么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,我也没有同样的问题。

注意 – 我正在使用.Net 4和webDriver.dll的最新版本(2.16)(在64位Windows 7机器上运行)

对我来说,修复是从https://code.google.com/p/selenium/downloads/list切换到32位版本的InternetExplorerDriver.exe

现在看似名为IEDriverServer ,但如果您只是将其重命名为InternetExplorerDriver.exe ,则可以正常工作。

检查’prefer 32 bit’未在构建属性中检查。 如果是,并且您正在使用64位IE驱动程序,它将像哮喘蜗牛一样运行。

使用C#,NUnit,C#webdriver客户端和IEDriverServer,我最初遇到输入速度慢的问题(例如,将密钥发送到输入框需要大约5秒钟的密钥,或点击按钮同样的延迟)。

然后,在阅读此线程后,我切换到32位IEDriverServer,这似乎解决了这个问题。

但是今天我正在尝试使用InternetExplorerOptions对象,以便根据此文档在IE上设置一些选项:

https://code.google.com/p/selenium/wiki/InternetExplorerDriver

根据文档,我创建了值为0的注册表值HKCU \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth,以便使用ForceCreateProcessApi = true和BrowserCommandLineArguments =“ – private”。

在这之后,我注意到缓慢输入的问题又回来了。 我对我的代码进行了一些更改,但在将所有这些更改回来后,问题仍然存在。 但是,当我删除上述注册表项时,输入恢复到全速(无延迟)。