Appium:isDisplayed()vs findElements(by).size

时间:2015-06-03 13:35:20

标签: java iphone testing automation appium

传统上,我总是使用以下方法检查appium中是否存在对象:

    int count = driver.findElements(by).size();
            if (count == 0) {
        Logger.LogMessage("ElementDoesNotExist: " + by, Priority.Medium);
        return true;
    } else {
        Logger.LogMessage("ElementDoesExist: " + by, Priority.Medium);
        return false;
    }

但是,我看到现在有一​​个isDisplayed()方法:

    driver.findElement(by).isDisplayed()

任何人都知道哪种方法最好用,为什么?

谢谢,

查理

1 个答案:

答案 0 :(得分:3)

这主要是Selenium的问题。当您使用findElements时,您正在寻找DOM中的 presence 元素。但是元素的存在仍然无法确保元素可见。为了验证元素显示状态,您必须使用isDisplayed方法。例如,如果大页面不显示页面DOM中存在的所有元素。

请参阅W3C WebDriver specification

中的详细信息