IE11 Selenium WebDriverException:无法导航。 (org.openqa.selenium.WebDriverException ... IWebBrowser2 :: Navigate2()失败

时间:2015-08-20 13:42:23

标签: internet-explorer exception selenium-webdriver webdriver

我是自动化测试新手,虽然我的Selenium测试在Chrome和Firefox上运行,但它们并没有在IE11上运行。我做了下面详细介绍的所有检查,但我仍然遇到这个错误:

org.openqa.selenium.WebDriverException:无法导航到http://myapp。这通常意味着对COM方法IWebBrowser2 :: Navigate2()的调用失败。

我首先完成了所需的配置 https://code.google.com/p/selenium/wiki/InternetExplorerDriver#Required_Configuration)。

我已按照In IE: org.openqa.selenium.WebDriverException: This usually means that a call to the COM method IWebBrowser2::Navigate2() failed的建议尝试编辑我的注册表 到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_HTTP_USERNAME_PASSWORD_DISABLE添加名为iexplore.exe的新DWORD值和值0,如https://stackoverflow.com/users/80779/lordofthepigs所述

我也试过介绍https://stackoverflow.com/users/4210466/karunakar-sapogu建议的代码段: new_window = self.driver.window_handles [1]
self.driver.switch_to_window(new_window) 但我似乎没有正确引入它,因为我遇到了java错误。

有没有人用Java解决这个问题?你能给我一步一步的指示吗? (请记住,我是新手,并且Java知识有限)。

非常感谢你!

2 个答案:

答案 0 :(得分:1)

1)你确定你的IEdriver实例运行了吗?

2)您使用的是IEdriver x64还是IEDriver x86?

即使您使用x64窗口,在大多数情况下您也使用Internet exlporer x86。请尝试x86驱动程序并尝试重现此类行为

答案 1 :(得分:0)

此错误消息...

org.openqa.selenium.WebDriverException: Failed to navigate to http://myapp. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed

...表示IEDriverServer无法启动/产生新的浏览上下文,即 Internet Explorer Browser 会话作为COM对象。


Internet Explorer驱动程序的必需配置

Required ConfigurationInternet Explorer Driver明确提到:

  • 必须下载IEDriverServer可执行文件并将其放置在PATH中。
  • 在Windows Vista或Windows 7的IE 7或更高版本上,必须将每个区域的保护模式设置设为相同的值。该值可以打开或关闭,只要每个区域都相同即可。要设置保护模式设置,请从“工具”菜单中选择“ Internet选项...”,然后单击“安全性”选项卡。对于每个区域,选项卡底部都会有一个标记为“启用保护模式”的复选框。

ProtectedModeSettings

  • 此外,对于IE 10及更高版本,必须禁用增强保护模式。在“ Internet选项”对话框的Advanced标签中找到此选项。
  • 浏览器缩放级别必须设置为100%,以便可以将本地鼠标事件设置为正确的坐标。
  • 对于Windows 10,还需要在显示设置中将更改文本,应用程序和其他项目的大小设置为100%
  • 仅对于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子项可能存在也可能不存在,如果不存在则应创建。在此键内,创建一个名为DWORD的{​​{1}}值,其值为0`。

解决方案

首先,您需要确保每个区域的保护模式设置为相同的值。此外,您还需要确保 Internet Explorer驱动程序所需配置


参考文献

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