无法使用Selenium WebDriver和Java打开IE11驱动程序实例

时间:2015-04-15 06:23:08

标签: java selenium selenium-webdriver internet-explorer-11

    System.setProperty("webdriver.ie.driver","C:\\Users\\IEDriverServer_Win32_2.45.0\\IEDriverServer.exe");

    WebDriver driver = new InternetExplorerDriver();

    driver.get("http://xxx");

执行上述代码时显示错误:

线程中的异常" main" org.openqa.selenium.remote.SessionNotFoundException:启动Internet Explorer时出现意外错误。保护模式设置对于所有区域都不相同。必须将启用保护模式设置为所有区域的相同值(启用或禁用)。 (警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:1.33秒

有人可以建议解决此问题吗?

2 个答案:

答案 0 :(得分:9)

如果保护模式设置对于所有区域不相同或者浏览器已缩放,则无法打开IE浏览器实例。

  1. 要解决此问题,请打开IE浏览器并转到 Internet选项 窗户。
  2. 点击安全标签,确保&#39; 互联网&#39;,&#39; 本地 Intranet &#39; <#39; 可信站点&#39;和&#39; 受限制的网站&#39;有&#39; 启用 保护模式&#39;选中或取消选中所有选项。
  3. 应用并保存设置并重新运行测试代码。这应该 工作
  4. 提供 解决方法 ,可帮助您暂时解决问题。

    DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
    
    caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
    
    WebDriver driver = new InternetExplorerDriver(caps); 
    

    注意: 如果您无权更改IE设置,请让您与IT管理员联系以完成所需的更改。

    • 保护模式是Internet Explorer(IE)安全中的重要一步,它有助于保护用户免受攻击 具有极大限制权限的IE流程。
    • 保护模式设置,就像IE的几乎所有其他设置一样 存储在Windows注册表中,并在浏览器时检查 实例
    • 驱动程序需要为无法设置IE的人提供解决方法 设置,因为他们的机器被过度锁定等等 引入了 capabiltity fetaure。
    • 它只是绕过注册表检查。使用该功能并不是 但是解决了潜在的问题。
    • 可能会导致意外挂起元素位置无法正常工作,并且点击未被传播
    • 为了帮助警告人们这个潜在的问题,能力是 给出了一些可怕的名字 的 INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS 即可。
    • 请求您的IT支持人员进行更改,如果仍在使用 你正在冒着代码稳定性的风险。

答案 1 :(得分:1)

如果你在代理之后没有访问条款来更改保护模式设置,那么使用此功能

DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
        cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);

这会引入一些瑕疵