org.openqa.selenium.InvalidArgumentException:使用DesiredCapabilities的无效功能

时间:2017-11-21 07:13:07

标签: java selenium iedriverserver desiredcapabilities mutablecapabilities

我已将我的Selenium框架升级到最新版本。在执行代码期间,我收到以下异常:

例外:

org.openqa.selenium.InvalidArgumentException: 
Invalid capabilities in alwaysMatch: unhandledPromptBehavior is type boolean instead of string

详细说明:

  • Selenium:3.7.1;
  • IE:3.7.0(32位驱动程序);
  • java.version:' 1.8.0_144'。

另外,较新的版本建议{@ 1}}已弃用。我在一个函数中单独设置浏览器的功能,并将其作为参数传递给Driver。

如何解决此问题?

代码段:

driver = new InternetExplorerDriver(capabilities);

然后我调用我的驱动程序:

desiredCapabilities(browser);

IE Capabilities Setting:- 
capabilities = new DesiredCapabilities().internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
capabilities.setCapability(CapabilityType.SUPPORTS_ALERTS, true);
capabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true);
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
capabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true);
capabilities.setCapability("nativeEvents", false);
capabilities.setCapability("requireWindowFocus", false);
capabilities.setJavascriptEnabled(true);
capabilities.setCapability("ignoreProtectedModeSettings", true);
System.setProperty("webdriver.ie.driver", ieExe.getAbsolutePath());

1 个答案:

答案 0 :(得分:2)

好吧,来自 Selenium v3.7 实施不再接受DesiredCapabilities类型对象作为初始化{{ {1}}实例而不是强类型Web Browser类是首选。因此,您必须使用 Options 类对象,使用 InternetExplorerOptions 中的 merge 参数并传递为一个参数。您的代码块如下:

MutableCapabilities