Assert Fails甚至java.lang.AssertionError:expected [true]但是找到[false]

时间:2017-09-11 18:39:49

标签: java selenium appium

运行时出现此错误。我正在尝试运行它并且我更改了返回true并稍后返回false。你知道为什么会这样吗?

public static boolean elementIsPresent(MobileElement element) {
    try {
        element.isDisplayed();
    } catch (org.openqa.selenium.NoSuchElementException e) {
        return true;
    }
    return false;
}

public void checkbox() {
    try {
        Assert.assertTrue(elementIsPresent(this.CimonCheckBox));
        Log.log(driver).info("Passes matches Cimon Name");
        Assert.assertTrue(elementIsPresent(this.KurwaCheckbox));
        Log.log(driver).info("Passes matches names");
    } catch (Exception e) {
        Assert.fail("CheckBox: " + e.getMessage());
    }
}

1 个答案:

答案 0 :(得分:1)

if语句中的逻辑是向后的。如果你得到NoSuchElementException,你返回true,否则返回false。如果你想将“显示”视为“现在”,那么我认为你的方法应该是:

public static boolean elementIsPresent(MobileElement element) {
    try {
        return element.isDisplayed();
    } catch (org.openqa.selenium.NoSuchElementException e) {
        return false;
    }
}

或者如果您只是想要返回true,如果它存在(无论是否显示),那么它可以是:

 public static boolean elementIsPresent(MobileElement element) {
        try {
            element.isDisplayed();
        } catch (org.openqa.selenium.NoSuchElementException e) {
            return false;
        }
        return true;
    }