unhandledPromptBehavior

unhandledPromptBehavior

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

例外:

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”

自动化代码可与我较旧的IE驱动程序(32位)一起使用-3.4.0。

请提出您的观点以解决错误。

capabilities.setCapability("UNHANDLED_PROMPT_BEHAVIOUR" ,false);
                    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());
                    opt = new InternetExplorerOptions();
                    opt.merge(capabilities);
                    driver = new InternetExplorerDriver(opt);
                    driver.manage().deleteAllCookies();
driver.manage().window().maximize();

最佳答案

简而言之:


有效功能名称为:"unhandledPromptBehavior"
"unhandledPromptBehavior""unexpectedAlertBehavior"的有效值是:"accept""dismiss""accept and notify""dismiss and notify""ignore"。但是W3C支持only 1st and 2nd


详细说明:

UNHANDLED_PROMPT_BEHAVIOUR是CapabilityType界面中的常量名称。但是您将其用作字符串。所以capabilities.setCapability("unhandledPromptBehavior", ...)capabilities.setCapability(CapabilityType.UNHANDLED_PROMPT_BEHAVIOUR, ...)

这些功能的值在枚举org.openqa.selenium.UnexpectedAlertBehaviour中确定:这是因为unhandledPromptBehavior是webdriver3中unexpectedAlertBehaviour的新更新名称。实际上,当您设置了unexpertAlertBehaviour Webdriver(v3.8)时会自动set both values

因此,导致错误的根本原因是:
capabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true)

您应将true替换为有效值(请参见上文)。该行实际上设置了两个功能:unhandledPromptBehaviorunexpectedAlertBehaviour。您的第一行(带有“ UNHANDLED_PROMPT_BEHAVIOR”)被驱动程序忽略。

09-30 17:27