Selenium webdriver IE11 Selenium WebDriverException:未能导航。(org.openqa.selenium.WebDriverException…IWebBrowser2::Navigate2()失败

Selenium webdriver IE11 Selenium WebDriverException:未能导航。(org.openqa.selenium.WebDriverException…IWebBrowser2::Navigate2()失败,selenium-webdriver,internet-explorer,internet-explorer-11,selenium-iedriver,iedriverserver,Selenium Webdriver,Internet Explorer,Internet Explorer 11,Selenium Iedriver,Iedriverserver,我是自动化测试的新手,虽然我的Selenium测试在Chrome和Firefox上运行,但它们并没有在IE11上运行。我做了下面详细介绍的所有检查,但我不断遇到这个错误: org.openqa.selenium.WebDriverException: Failed to navigate to http://myapp. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed. 我首先进

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

org.openqa.selenium.WebDriverException: Failed to navigate to http://myapp. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed.
我首先进行了必要的配置,如中所示 )

我已尝试按照上的建议编辑我的注册表 要禁用HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE\U HTTP\U USERNAME\u PASSWORD\u,请添加一个名为iexplore.exe、值为0的新DWORD值,如所述

我还尝试介绍以下建议的代码:

但我似乎没有正确地介绍它,因为我遇到了java错误

有人用Java解决过这个问题吗?你能给我一步一步的说明吗?

1)你确定你的IEdriver实例正在运行吗

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


即使使用x64 windows,在大多数情况下也使用internet exlporer x86。请尝试x86驱动程序,并尝试重现这种行为,它成功了!非常感谢。问题是我有64位版本。通过将其替换为32位版本,我的代码工作正常(我在System32中有驱动程序,以绕过修改路径)

此错误消息

org.openqa.selenium.WebDriverException: Failed to navigate to http://myapp. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed
…表示IEDriverServer无法启动/生成新的浏览上下文,即作为COM对象的Internet Explorer浏览器会话


Internet Explorer驱动程序所需的配置 报告明确提到:

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

  • 此外,IE 10及更高版本必须禁用增强保护模式。此选项位于Internet选项对话框的
    Advanced
    选项卡中
  • 浏览器缩放级别必须设置为
    100%
    ,以便将本机鼠标事件设置为正确的坐标
  • 对于Windows 10,您还需要在显示设置中将文本、应用程序和其他项目的大小设置为
    100%
  • 仅对于IE 11,您需要在目标计算机上设置一个注册表项,以便驱动程序能够保持与它创建的Internet Explorer实例的连接
  • 对于32位Windows安装,您必须在注册表编辑器中检查的项是
    HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\BFCACHE
  • 对于64位Windows安装,密钥是
    HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\BFCACHE
  • 请注意,
    FEATURE\u BFCACHE
    子项可能存在也可能不存在,如果不存在,则应创建该子项。在此键内,创建一个名为
    iexplore.exe
    DWORD
    值,其值为0`

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


工具书类 您可以在以下内容中找到一些相关讨论:


我设法打开IE浏览器,让它进入我的主页,但它不会进入第二个链接。我使用x64,因为我的计算机有64位windows,即使您使用x64 windows,在大多数情况下,您也使用internet exlporer x86。请尝试x86驱动程序并尝试重现这种行为。
    System.setProperty(webdriver.ie.driver", "C://Windows/System32/IEDriverServer.exe");
    driver = new InternetExplorerDriver();
    baseUrl = "http://mysite";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
org.openqa.selenium.WebDriverException: Failed to navigate to http://myapp. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed