alwaysMatch中的功能无效:unhandledPromptBehavior是布尔类型,而不是字符串 [英] Invalid capabilities in alwaysMatch: unhandledPromptBehavior is type boolean instead of string

查看:500
本文介绍了alwaysMatch中的功能无效:unhandledPromptBehavior是布尔类型,而不是字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have upgraded my Selenium framework to the latest version. During execution of the code, I receive the following exception

例外:

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"

Selenium: 3.7.1 IE : 3.7.0 (32 Bit Driver) java.version: '1.8.0_144'

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

Automation code works with my older IE Driver (32 Bit) - 3.4.0.

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

Please suggest your view to resolve the error .

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();

推荐答案

简而言之:

In short:

  • 有效功能名称为:"unhandledPromptBehavior"
  • "unhandledPromptBehavior""unexpectedAlertBehavior"的有效值是:"accept""dismiss""accept and notify""dismiss and notify""ignore".但是W3C仅支持仅第一和第二 .
  • Valid capability name is: "unhandledPromptBehavior"
  • Valid values for "unhandledPromptBehavior" AND for "unexpectedAlertBehavior" are: "accept", "dismiss", "accept and notify", "dismiss and notify", "ignore". But W3C supports only 1st and 2nd.

详细信息:

In details:

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

UNHANDLED_PROMPT_BEHAVIOUR is a constant name from CapabilityType interface. But you use it as string. So either capabilities.setCapability("unhandledPromptBehavior", ...) or capabilities.setCapability(CapabilityType.UNHANDLED_PROMPT_BEHAVIOUR, ...)

这些功能的值在枚举org.openqa.selenium.UnexpectedAlertBehaviour中确定:这是因为unhandledPromptBehavior是webdriver3中unexpectedAlertBehaviour的新更新名称.实际上,当您设置 unexpectedAlertBehaviour 网络驱动程序(v3.8)时,会自动

Values for those capabilities are encauntered in enum org.openqa.selenium.UnexpectedAlertBehaviour: it is because unhandledPromptBehavior is new updated name for unexpectedAlertBehaviour in webdriver3. Actually when you set unexpectedAlertBehaviour the webdriver (v3.8) automatically set both values.

因此,您的错误的根本原因是该行: capabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true):

So root cause of your error is the line: capabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true):

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

You should replace true to valid value (see above). This line actually set both capabilities: unhandledPromptBehavior and unexpectedAlertBehaviour. Your first line (with "UNHANDLED_PROMPT_BEHAVIOR") just ignored by driver.

这篇关于alwaysMatch中的功能无效:unhandledPromptBehavior是布尔类型,而不是字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆