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

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

传统上,我总是使用以下方法检查 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()

有人知道哪个最好用吗?为什么?

谢谢,

查理

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

详情请见 W3C WebDriver specification