我知道我可以使用(driver.findElements(By.xpath("Xpath Value")).size() != 0);
但是,我使用的是页面对象模型,其目的是在单独的类中预定义WebElements,因此我的测试类中没有“FindElements By”。
这是我目前拥有的
if (objPage.webElement.isEnabled()){
System.out.println("found element");
}else{
System.out.println("element not found");
}
但是,这会尝试识别可能不存在的WebElement。当它不存在时,我得到:
没有这样的元素“例外。
答案 0 :(得分:5)
最佳做法是执行您最初建议的操作,使用.findElements()
并检查.size != 0
,或者您也可以使用我的偏好.isEmpty()
。您可以创建如下所示的Util函数来测试元素是否存在。
public boolean elementExists(By locator)
{
return !driver.findElements(locator).isEmpty();
}
您还可以将其构建到页面对象中的函数中。
答案 1 :(得分:-2)
您可以使用isDisplayed()来检查元素是否可见。它足够简单,可以编写一个可以做你想要的方法。类似的东西:
public boolean isElementDisplayed(WebElement element) {
try {
return element.isDisplayed();
} catch(NoSuchElementException e) {
return false;
}
}