【问题标题】:Why is Selenium InternetExplorerDriver Webdriver very slow in debug mode (visual studio 2010 and IE9)为什么 Selenium InternetExplorerDriver Webdriver 在调试模式下非常慢(Visual Studio 2010 和 IE9)
【发布时间】:2017-04-18 22:21:24
【问题描述】:

我正在使用 SeleniumHq 网站上的示例代码 - 但在调试模式下,性能很糟糕。

在发布模式下,整个测试大约需要 6 秒(包括启动和关闭 IE) 在 Debug 模式下需要 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 和最新版本 (2.16) 的 webDriver.dll(在 64 位 Windows 7 机器上运行)

【问题讨论】:

  • 好像和x64模式运行有关吧?当我强制它在 x86 调试模式下运行时,性能还好吗?
  • Selenium 团队提出了同样的问题,但提供了更多详细信息:groups.google.com/group/selenium-users/browse_thread/thread/…
  • 我在使用 32 位和 64 位版本的 InternetExplorerDriver 时遇到了同样的问题。我注意到 iexplorer.exe 进程在执行测试时占用了我大约 30% 到 60% 的 CPU,并且在某些操作之间有很长时间的停顿。
  • 我最近买了一台新机器,但用所有相同的软件设置后,我不再遇到问题。在 32 或 64 中。所以我不能再测试这个问题了,没关系。
  • 我在 Win7 x64 中仍然有这个问题,并且在几个使用 Win7 x64 的 VM 中。我还不能在其他操作系统和/或 x86(32 位)中进行测试。在所有的 IE9 中。

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


【解决方案1】:

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

现在看似命名为 IEDriverServer,但只要将其重命名为 InternetExplorerDriver.exe 即可。

【讨论】:

  • 一年后这似乎对我不起作用,Win 7 x64 和 IE 9 x32,两个版本的 IEDriverServer.exe 都会导致运行非常缓慢。
  • 从 selenium 版本 2.52(2016 年 2 月)开始,此解决方案对我有效
【解决方案2】:

在您的构建属性中未检查“首选 32 位”。如果是这样,并且您使用的是 64 位 IE 驱动程序,它将像喘息的蜗牛一样运行。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 2012-09-16
      • 1970-01-01
      相关资源
      最近更新 更多