【问题标题】:Webdriver typing very slow in IE11 and Windows 10Webdriver 在 IE11 和 Windows 10 中输入速度很慢
【发布时间】:2018-03-09 07:00:20
【问题描述】:

在执行测试用例时,字符的输入速度非常慢。 我正在使用 Windows10 + Selenium 2.39 + IE 11 + IEDriverServer(64 位),尝试用 32 位替换它,但无济于事。检查了所有安全区域设置并尝试了所有可用的在线资源。任何解决方案或我应该降级操作系统到 Windows 7(因为它在 win7 上运行良好)。

【问题讨论】:

  • 升级到 Selenium v​​3.10.0IEDriverServer(64bit)/(32bit) v3.10.0 并根据您的观察更新问题。跨度>
  • @Debanjan,使用 Selenium3.10 和 IEdriverServer 64 位,我得到“IEdriver 的命令行服务器已停止工作”
  • IEDriverServer(32bit) v3.10.0怎么样?

标签: selenium webdriver iedriverserver


【解决方案1】:

请尝试使用 IEDriverServer(32bit) 解决此问题。

【讨论】:

  • 试过了,在有/没有 Desiredcapabilities 的情况下,它的打字速度也很慢
  • 我也用了32位驱动,但是sendkeys还是很慢。检查路径HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 中的注册表项TabProcGrowth 并将其删除并重试。它对我有用IEDriverServer(32bit) v3.9.0
【解决方案2】:

在尝试使用 IEDriver 32 位的“InPrivate”浏览时,我遇到了同样的慢速打字问题。 InPrivate 模式是为了确保保存的凭据不会用于“首次用户注册/登录”测试场景,其中包括用于发送确认码的多因素身份验证步骤。

事实证明,将“InPrivate”选项与 IEDriver 和 ForceCreateProcessApi = true 选项一起使用会触发 64 位进程启动,而 64 位然后进程调用 IE 浏览器。我不确定浏览器是 64 位还是 32 位,但 32 位 IEDriver 在向运行在这个 64 位 Windows 10 进程中的 IE 11 浏览器发送击键时非常慢。

IEDriver 32 位方法需要使用 ForceCreateProcessApi 选项才能使组合正常工作。
由此产生的超慢输入测试使整体测试速度慢得令人无法接受。

这对我有用:

  • 使用 64 位 IEDriver
  • 不要指定“ForceCreateProcessApi = true”选项
  • 添加或更改注册表值:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth TabProcGrowth 是 Internet Explorer\Main 键下的值。我在 Internet Explorer\Main 下为 TabProcGrowth 创建了一个 DWord 值,并将该值设置为 0。

设置 IEDriver 的代码如下所示:

InternetExplorerOptions ieOptions = new InternetExplorerOptions();
ieOptions.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
ieOptions.IgnoreZoomLevel = true;
ieOptions.BrowserCommandLineArguments.Insert(0,"-private");
var _driver64 = new InternetExplorerDriver($"{Directory.GetCurrentDirectory()}", ieOptions);
_driver64.Manage().Window.Maximize();
_driver64.Navigate().GoToUrl("https://www.mypage.com");

那么交互代码与32位代码相同,如下:

IWebElement userName = _driver64.FindElement(By.XPath("//*[@id=\"username\"]"));
userName.SendKeys("MyUserID");

我从这里成功使用了 64 位 IEDriver:https://www.seleniumhq.org/download/ 查找标题“Internet Explorer 驱动程序服务器”并找到 64 位版本。 当时发布的版本自我报告为版本 3.14.0.0。

最终我想使用 NuGet 包,我想要一个包,其中 exe 的名称是“IEDriverServer.exe”,与 32 位文件名相同。我最终使用了这个:https://www.nuget.org/packages/WebDriver.IEDriverServer.win64/3.141.0,GitHub 位置为: https://github.com/SeriousM/WebDriver.IEDriverServer-nuget

到目前为止,它对我来说效果很好。

【讨论】:

    【解决方案3】:

    我的问题是 64 位的 IEdriver 输入速度很慢。我尝试在 Internet 选项~高级下单击“启用增强保护模式”。但这对我正在开发的 Windows 2012 64bit IIS VM 没有帮助。

    Main 下没有 TabProcGrowth 注册表项。

    所以我按照其他人的建议使用 seleniumhq.org 的 32 位版本。但这并没有解决我的问题。

    然后我取消选中 Internet 选项中的“启用增强保护模式”。这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2015-03-15
      • 2023-04-09
      • 1970-01-01
      • 2013-04-20
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      相关资源
      最近更新 更多