传统上,我总是使用以下方法检查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()
任何人都知道哪种方法最好用,为什么?
谢谢,
查理
答案 0 :(得分:3)
这主要是Selenium的问题。当您使用findElements时,您正在寻找DOM中的 presence 元素。但是元素的存在仍然无法确保元素可见。为了验证元素显示状态,您必须使用isDisplayed方法。例如,如果大页面不显示页面DOM中存在的所有元素。
请参阅W3C WebDriver specification
中的详细信息