org.openqa.selenium.InvalidArgumentException: недопустимые возможности с использованием DesiredCapabilities
Я обновил свой Selenium Framework до последней версии. Во время выполнения кода я получаю следующее исключение:
Исключение:
org.openqa.selenium.InvalidArgumentException:
Invalid capabilities in alwaysMatch: unhandledPromptBehavior is type boolean instead of string
Подробности:
- Селен: 3,7,1;
- IE: 3.7.0 (32-битный драйвер);
- java.version: '1.8.0_144'.
Также более новая версия предлагает driver = new InternetExplorerDriver(capabilities);
устарела. Я настраиваю возможности браузера отдельно в функции и передаю его в качестве параметра в Driver.
Как решить эту проблему?
Фрагмент кода:
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());
Затем я вызываю моего водителя:
driver = new InternetExplorerDriver(capabilities);
1 ответ
Ну, то Selenium
реализация от v3.7
на палатах больше не принимает DesiredCapabilities
введите объекты в качестве параметра для инициализации Web Browser
экземпляры, а не только строго типизированные Options
классы являются предпочтительными. Так что вы должны использовать InternetExplorerOptions
Объект класса, использование merge
аргумент от MutableCapabilities
и передать в качестве параметра. Ваш кодовый блок будет выглядеть следующим образом:
System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS", true);
capabilities.setCapability("ACCEPT_SSL_CERTS", true);
capabilities.setCapability("SUPPORTS_ALERTS", true);
capabilities.setCapability("UNEXPECTED_ALERT_BEHAVIOR", true);
capabilities.setCapability("IE_ENSURE_CLEAN_SESSION", true);
capabilities.setCapability("ENABLE_ELEMENT_CACHE_CLEANUP", true);
capabilities.setCapability("nativeEvents", false);
capabilities.setCapability("requireWindowFocus", false);
capabilities.setJavascriptEnabled(true);
capabilities.setCapability("ignoreProtectedModeSettings", true);
InternetExplorerOptions opt = new InternetExplorerOptions();
opt.merge(capabilities);
WebDriver driver = new InternetExplorerDriver(opt);