在IE11和Windows 10中,Webdriver输入速度非常慢

时间:2018-03-09 07:00:21

标签: selenium webdriver iedriverserver

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

当尝试通过IEDriver 32位使用“ InPrivate”浏览时,我也遇到了同样的slowwwww输入问题。 InPrivate模式是为了确保保存的凭据不会用于“首次用户注册/登录”测试方案,该方案包括一个用于发送确认代码的多因素身份验证步骤。

原来,在IEDriver中使用“ InPrivate”选项和 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的代码如下:

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

然后进行交互的代码与32位代码相同,如下所示:

{{1}}

我从以下位置成功使用了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

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

答案 2 :(得分:0)

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

Main下没有TabProcGrowth注册表项。

因此,我遵循了其他建议使用seleniumhq.org的32位版本。但这并不能解决我的问题。

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