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

Gun*_*pta 3 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");
Run Code Online (Sandbox Code Playgroud)

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

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

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

Rup*_*nde 9

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

  1. 要解决此问题,请打开IE浏览器并转到" Internet选项" 窗口.
  2. 单击" 安全"选项卡,确保" Internet "," 本地Intranet "," 受信任的站点 "和" 受限制的站点 "已选中或取消选中" 启用保护模式 "以获取所有选项.
  3. 应用并保存设置并重新运行测试代码.它应该工作.

提供了以下解决方法,可帮助您临时解决问题.

DesiredCapabilities caps = DesiredCapabilities.internetExplorer();

caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);

WebDriver driver = new InternetExplorerDriver(caps); 
Run Code Online (Sandbox Code Playgroud)

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

  • 保护模式是Internet Explorer(IE)安全性的重要一步,它通过运行具有极大限制权限的IE进程来帮助保护用户免受攻击.
  • 与IE的几乎所有其他设置一样,保护模式设置存储在Windows注册表中,并在实例化浏览器时进行检查.
  • 司机需要一个解决方法谁也不能设置这些IE的设置,因为他们的机器被过度锁定,所以人们 capabiltity引入fetaure.
  • 它只是绕过了注册表检查.但是,使用该功能并不能解决潜在的问题.
  • 可能会导致意外挂起,元素位置不起作用以及未传播的点击.
  • 为了帮助警告人们这个潜在的问题,该功能被赋予了一些可怕的名字,如 INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS.
  • 请您的IT支持人员进行更改,如果仍然使用该功能,则会影响代码的稳定性.