我想检查阴性情况。 上面的boolean元素未显示,但我必须打印true和false,但没有显示此类元素异常 请帮忙。
try{
boolean k= driver.findElement(By.xpath("xpath_of_element")).isDisplayed();
if(!k==true)
{
System.out.println("true12");
}
}catch (NoSuchElementException e) {
System.out.println(e);
}
答案 0 :(得分:1)
元素有两个不同的阶段,如下所示:
您看到的NoSuchElementException本质上表示该元素在Viewport内并且在所有可能的条件下 isDisplayed()
都不存在。 strong>方法将返回 false 。因此,要验证这两个条件,可以使用以下解决方案:
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");
}
答案 1 :(得分:0)
在检查元素的显示状态之前,您应该使用下面的代码来验证给定的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());
}
答案 2 :(得分:0)
if (driver.findElements(xpath_of_element).size() != 0) return true;
return false;