1

当我尝试使用 IEWebdriver3.150 运行量角器脚本时,出现 Access denied 错误:

Error:
E/launcher - Unexpected error launching Internet Explorer. IELaunchURL() returned HRESULT 80070005 ('Access is denied.') for URL 'http://localhost:40744/'

我尝试创建一个注册表 FEATURE_BFCACHE 并在所有安全区域中启用启用保护模式并将浏览器缩放设置为 100%。

  • 节点版本:v14.16.1(也尝试过最新版本)
  • 量角器:7.0.0
  • 硒:3.141.59
  • IE 网络驱动程序:- 3.150.1

配置:

multiCapabilities: {
            'browserName': 'internet explorer',
            'ignoreProtectedModeSettings': true,
            'platform': 'Windows',
            'version': '11',
            'browserVersion': '11',
            'unexpectedAlertBehaviour': 'accept',
            'ignoreZoomSetting': true,
            'ie.ensureCleanSession': true,
             'maxInstances': 4
        }
4

1 回答 1

1

此错误消息...

Error: E/launcher - Unexpected error launching Internet Explorer. IELaunchURL() returned HRESULT 80070005 ('Access is denied.') for URL 'http://localhost:40744/'

...意味着IEDriverServer无法启动/产生新的WebBrowsing 会话,即浏览器会话。


由于保护模式设置不正确,通常会观察到此问题

保护模式

在 Windows Vista 或 Windows 7 上的 Internet Explorer 7 或更高版本上,您必须将每个区域的保护模式设置设置为相同的值。该值可以打开或关闭,只要每个区域都相同。要设置保护模式设置,您必须从“工具”菜单中选择“Internet 选项”,然后单击“安全”选项卡。对于每个区域,标签底部都有一个标记为Enable Protected Mode的复选框。

保护模式设置

@JimEvans 在他的文章You're Doing It Wrong: IE Protected Mode and WebDriver中明确提到:

但是,使用该功能并不能解决根本问题。如果跨越保护模式边界,可能会导致非常意外的行为,包括挂起、元素位置不工作和点击不传播。为了帮助警告人们这个潜在的问题,该功能被赋予了听起来很吓人的名字,比如INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINSJava.NETIntroduceInstabilityByIgnoringProtectedModeSettings中。我们真的认为告诉用户使用此设置会在他们的代码中引入潜在的错误会阻止其使用,但事实并非如此。

此外,仅对于IE 11,您需要在目标计算机上设置一个注册表项,以便驱动程序可以保持与它创建的 Internet Explorer 实例的连接。

  • 对于 32 位 Windows 安装,您必须在注册表编辑器中检查的键是:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. 
    
  • 对于 64 位 Windows 安装,关键是:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. 
    
  • 注意子项可能存在也可能不存在,如果FEATURE_BFCACHE不存在则应创建子项。重要提示:在此键中,创建一个名为 iexplore.exe 且值为 0 的 DWORD 值。


参考

您可以在以下位置找到一些相关的详细讨论:

于 2022-02-01T20:24:48.873 回答