Selenium处理条件断言



我正在做一个UI操作,有两种可能性;

1. I get an info message OR
2. I get a success message

现在我需要在Selenium中断言相同的内容。

同样,UI上只有一个可能的结果。。。要么我收到信息,要么我收到成功信息。。

因此,基本上我需要断言以下任何一个;

assertThat(getAlertMessage("info", "cancel info message").getText(), equalTo("cancel info message"));
assertThat(getAlertMessage("success", "cancel success message").getText(), equalTo("cancel success message"));

我应该尝试接球还是使用if…else?

您可以使用将布尔值作为参数的断言方法,只需执行条件OR检查:

对于测试NG:

String alertMessage = getAlertMessage("info", "cancel info message").getText();
String infoMessage = "cancel info message";
String successMessage = "cancel success message";
assertTrue(alertMessage.equals(infoMessage) || alertMessage.equals(successMessage), "Alert message does not equal either info or success message");

JUnit:

String alertMessage = getAlertMessage("info", "cancel info message").getText();
String infoMessage = "cancel info message";
String successMessage = "cancel success message";
assertTrue("Alert message does not equal either info or success message", alertMessage.equals(infoMessage) || alertMessage.equals(successMessage));

如果你正在使用Hamcrest火柴,你可以这样做:

assertThat(alertMessage, anyOf(equalTo(infoMessage), equalTo(successMessage)));

最新更新