我想在Selenium中进行测试(Java,Testng) 如果我的实际值等于两个值之一,因为我的值可以是Value1或Value2,并且两个值都正确。
如果我只想断言一个等式,请使用以下构造:
String expectedPopUpV1 = "Value1";
String expectedPopUpV2 = "Value2";
String actualPopUp = driver.findElement(By.cssSelector(Value)).getText();
Assert.assertEquals(actualPopUp,expectedPopUp);
但是如果我想做类似的事情
该怎么办?Assert.assertEquals(actualPopUp,expectedPopUp1||expectedPopUp1);
答案 0 :(得分:5)
您可以使用assertTrue(boolean condition, String message)
并在消息中提供详细信息
boolean isEqual = actualPopUp.equals(expectedPopUpV1) || actualPopUp.equals(expectedPopUpV2);
Assert.assertTrue(isEqual, "The text " + actualPopUp + " is not " + expectedPopUpV1 + " or " + expectedPopUpV2);
答案 1 :(得分:0)
没有任何可用的此类方法。我能想到的两个最接近的选项:
if(!actualPopUp.equals(expectedPopUp1) || !actualPopUp.equals(expectedPopUp2) {
Assert.fail("insert failure messsage here");
}
或
if(actualPopUp.equals(expectedPopUp1) || actualPopUp.equals(expectedPopUp2) {
Assert.assertTrue("insert message");
}
另一种选择是通过使用Builder模式构建自己的Assert功能,从而真正地扩展Assert功能:
AssertBuilder.with(actualPopUp).equals(expectedPopUp1).or(expectedPopUp2);
但是对于一个简单的用例来说,这可能太复杂了。
答案 2 :(得分:0)
以下选项也应使用三元运算符:
Assert.assertEquals(expectedPopUpV1.equalsIgnoreCase(actualPopUp )?expectedPopUpV1:expectedPopUpV2 , actualPopUp );