为什么Selenium InternetExplorerDriver Webdriver在调试模式下非常慢(visual studio 2010和IE9)

时间:2012-01-13 11:57:11

标签: c# visual-studio-2010 selenium webdriver

我正在使用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机器上运行)

3 个答案:

答案 0 :(得分:27)

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

现在看似名为IEDriverServer,但如果您只是将其重命名为InternetExplorerDriver.exe,则会有效。

答案 1 :(得分:12)

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

答案 2 :(得分:2)

使用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”。

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