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