1

我刚刚开始使用 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
    }
}
4

1 回答 1

0

对于 Chrome,答案是:

chrome.capabilities.handlesAlerts = true

这 sis 等价于代码:

cap.setCapability(CapabilityType.SUPPORTS_ALERTS, true);

资料来源:https ://johnfergusonsmart.com/configuring-chromedriver-easily-with-serenity-bdd/

我正在寻找 Firefox 的等价物,但到目前为止我一无所获。

于 2018-11-12T10:51:18.000 回答