I have upgraded my Selenium framework to the latest version. During execution of the code, I receive the following exception:
Exception:
org.openqa.selenium.InvalidArgumentException:
Invalid capabilities in alwaysMatch: unhandledPromptBehavior is type boolean instead of string
Details:
- Selenium: 3.7.1;
- IE: 3.7.0 (32 Bit Driver);
- java.version: '1.8.0_144'.
Also newer version suggests driver = new InternetExplorerDriver(capabilities);
is deprecated. I am setting capabilities of the browser separately in a function and passing it as a parameter in Driver.
How to resolve this issue?
Code snippet:
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());
Then I invoke my driver:
driver = new InternetExplorerDriver(capabilities);
Well, the
Selenium
implementation fromv3.7
on wards no more acceptsDesiredCapabilities
type objects as a parameter to initializeWeb Browser
instances rather only strongly typedOptions
classes are preferred. So you have to useInternetExplorerOptions
Class object, usemerge
argument fromMutableCapabilities
and pass as a parameter. Your code block will be as follows :