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

标签 java selenium selenium-webdriver pageobjects

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

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

这是我目前拥有的

if (objPage.webElement.isEnabled()){
   System.out.println("found element");
}else{
   System.out.println("element not found");
}

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

No Such Element" exception.

最佳答案

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

public boolean elementExists(By locator)
{
    return !driver.findElements(locator).isEmpty();
}

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

关于java - 如何确定 WebElement 是否存在于 Selenium 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125228/

相关文章:

java - Google 的 Json 解析 Gson 库 : What's the difference between JsonElement and JsonObject?

java - 通过属性文件配置 Selenium 服务器

java - 更新到 Selenium 3.4 时出现 ClassCastException

html - 如何从 Selenium IDE 的下拉无序列表中选择一个元素

python - Selenium webdriver 功能未显示在 pycharm 自动建议列表中

java - 为什么这个 null 赋值会使对象更快地被垃圾回收?

java - 在一个项目中使用Aspectj编译时编织和Java编译时注释处理

java - 如何在我的适配器中启动 Activity?

java - 实际和预期字符串具有相同的结果,但测试仍然失败,说预期 [true] 但发现 [false]

javascript - 如何打破实习生中的元素循环