如何确定Selenium中是否存在WebElement?

dsi*_*ler 3 java selenium pageobjects selenium-webdriver

我知道我可以用 (driver.findElements(By.xpath("Xpath Value")).size() != 0);

但是,我使用的是页面对象模型,其全部目的是在单独的类中预定义WebElement,因此不必在测试类中使用“ FindElements By”。

这是我目前拥有的

if (objPage.webElement.isEnabled()){
   System.out.println("found element");
}else{
   System.out.println("element not found");
}
Run Code Online (Sandbox Code Playgroud)

但是,这试图识别可能不存在的WebElement。当它不存在时,我得到:

没有此类元素”例外。

Jef*_*ffC 5

最佳做法是按照您最初的建议进行使用.findElements()和检查,.size != 0或者也可以使用我的偏好.isEmpty()。您可以创建如下所示的Util函数来测试元素是否存在。

public boolean elementExists(By locator)
{
    return !driver.findElements(locator).isEmpty();
}
Run Code Online (Sandbox Code Playgroud)

您也可以将其构建到页面对象的函数中。