我刚刚开始使用 Cucumber + Serenity。
我想忽略 UnhandledAlertException。
这就是在 Selenium 中设置 chrome 功能的方式
capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
但我不确定应该在 serenity.properties 文件中使用什么来忽略未处理的警报。
chrome.capabilities.unexpectedAlertBehaviour = ignore
这个对吗?问题是我无法测试此行为,因为并非在所有运行中都发生意外警报异常。
因此,只有在测试失败(我无法重播)时,我才会收到上述属性是否有效的反馈
至少下面的代码现在对我不起作用,所以我决定使用全局设置和下面的方法:
private void dismissAlertIfPresentAtStartOfScenario()
{
try
{
Alert alert = REAL_DRIVER.switchTo().alert();
String text = alert.getText();
alert.dismiss();
LOGGER.warn("Dismissed alert [{}] at start of this scenario!", text);
}
catch (NoAlertPresentException e)
{
// ignore the exception and do nothing, no alert is expected at the start of the scenario
}
}