硒声明等于Value1或Value2

时间:2018-08-23 09:32:50

标签: java selenium intellij-idea testng qa

我想在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);

3 个答案:

答案 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 );