我以以下方式将按钮声明为字段:

@AndroidFindBy(name = "Schedule")
private WebElement calendarButton;


...,然后我确定它没有显示,因为该应用程序处于某些特殊模式。

Assert.assertFalse(this.calendarButton.isDisplayed());


它给我org.openqa.selenium.NoSuchElementException,但是测试失败。有什么想法可以提出这样的主张吗?

我不想在代码中多次定义By condition的东西,因此使用property很方便。

最佳答案

经过一番思考,我想出了以下解决方案:

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

    return true;
}


我通过以下方式使用此方法:

Assert.assertFalse(elementIsPresent(this.calendarButton));


我受到this thread中答案之一的启发。

07-24 09:34