1

Cucumber + Serenity を使い始めたばかりです。

UnhandledAlertException を無視したいと思います。

これは、Seleniumでクロム機能を設定する方法です

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