如何确定 WebElement 是否存在于 Selenium 中?
How do I determine if a WebElement exists with Selenium?
我知道我可以使用 (driver.findElements(By.xpath("Xpath Value")).size() != 0);
但是,我使用的是页面对象模型,其全部目的是在单独的 class 中预定义 WebElements,因此我不必 "FindElements By" 在我的测试中 [=24] =]是的。
这是我目前拥有的
if (objPage.webElement.isEnabled()){
System.out.println("found element");
}else{
System.out.println("element not found");
}
但是,这会尝试识别可能 不存在的 WebElement。当它不存在时,我得到:
No Such Element" exception.
您可以使用 isDisplayed() 检查元素是否可见。写一个方法来做你想做的事情已经足够简单了。类似于:
public boolean isElementDisplayed(WebElement element) {
try {
return element.isDisplayed();
} catch(NoSuchElementException e) {
return false;
}
}
最佳做法是按照您最初的建议进行操作,使用 .findElements()
并检查 .size != 0
或者您也可以使用我的偏好 .isEmpty()
。您可以创建如下所示的 Util 函数来测试元素是否存在。
public boolean elementExists(By locator)
{
return !driver.findElements(locator).isEmpty();
}
您也可以将其构建到页面对象中的函数中。
我知道我可以使用 (driver.findElements(By.xpath("Xpath Value")).size() != 0);
但是,我使用的是页面对象模型,其全部目的是在单独的 class 中预定义 WebElements,因此我不必 "FindElements By" 在我的测试中 [=24] =]是的。
这是我目前拥有的
if (objPage.webElement.isEnabled()){
System.out.println("found element");
}else{
System.out.println("element not found");
}
但是,这会尝试识别可能 不存在的 WebElement。当它不存在时,我得到:
No Such Element" exception.
您可以使用 isDisplayed() 检查元素是否可见。写一个方法来做你想做的事情已经足够简单了。类似于:
public boolean isElementDisplayed(WebElement element) {
try {
return element.isDisplayed();
} catch(NoSuchElementException e) {
return false;
}
}
最佳做法是按照您最初的建议进行操作,使用 .findElements()
并检查 .size != 0
或者您也可以使用我的偏好 .isEmpty()
。您可以创建如下所示的 Util 函数来测试元素是否存在。
public boolean elementExists(By locator)
{
return !driver.findElements(locator).isEmpty();
}
您也可以将其构建到页面对象中的函数中。