在Serenity中设置Capability以忽略UnhandledAlertException

时间:2018-11-09 13:13:52

标签: selenium-webdriver alert unhandled-exception cucumber-serenity desiredcapabilities

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

1 个答案:

答案 0 :(得分:0)

对于Chrome,答案是:

chrome.capabilities.handlesAlerts = true

此sis等效于代码:

cap.setCapability(CapabilityType.SUPPORTS_ALERTS, true);

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

我正在寻找与Firefox相当的产品,但到目前为止我什么都没发现。