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);
Другие вопросы по тегам