3 回答
TA贡献1864条经验 获得超2个赞
元素有两个不同的阶段,如下所示:
HTML DOM中存在的元素
元素可见,即显示在DOM树中
正如你所看到的NoSuchElementException异常基本上表示该元素不存在的内视口,并在所有可能的条件下isDisplayed()方法将返回错误。因此,要验证这两个条件,可以使用以下解决方案:
try{
if(driver.findElement(By.xpath("xpath_of_the_desired_element")).isDisplayed())
System.out.println("Element is present and displayed");
else
System.out.println("Element is present but not displayed");
}catch (NoSuchElementException e) {
System.out.println("Element is not present, hence not displayed as well");
}
TA贡献1796条经验 获得超7个赞
if (driver.findElements(xpath_of_element).size() != 0) return true; return false;
TA贡献1871条经验 获得超13个赞
在检查元素的显示状态之前,应该使用以下代码验证给定的xpath是否存在至少一个或多个元素。
List<WebElement> targetElement = driver.findElements(By.xpath("xpath_your_expected_element"));
try {
if(targetElement>=1) {
if(targetElement.isDisplayed()) {
System.out.println("Element is present");
}
else {
System.out.println("Element is found, but hidden on the page");
}
else {
System.out.println("Element not found on the page");
}
}catch (NoSuchElementException e) {
System.out.println("Exception in finding the element:" + e.getMessage());
}
添加回答
举报