我需要检查 Java Selenium 中的页面上是否存在某个元素。不幸的是,所有关于搜索的解释都是使用 FindElements(By) 进行的,但我有一个将 WebElement 直接传递给该方法的结构,因为我的元素已经由 PageFactory 发送。
所以我的结构如下:
public static void verifyElementPresentStatus(WebElement targetElement, String elementName) {
Boolean elementPresent = MISSING PART
StepLogger.subVerification(elementName + " should be present");
Assert.assertTrue(
elementPresent,
ValidationHelper.getPresentValidation(elementName)
);
}
并调用类似的方法
ExpectationHelper.verifyElementPresentStatus(
Pages.HomePage().homeHeader,
Pages.HomePageConstants().pageHeaderText
);
有人知道如何做到这一点吗?
最佳答案
您无法编写接受 WebElement 作为参数并在所有情况下检查它是否存在的方法。这是因为,唯一可以引用不存在的 WebElement 对象的情况是该对象先前存在,然后从 DOM 中删除(“陈旧元素”)。为了确定某个元素是否第一次存在,您只能通过接受 By 参数而不是 WebElement 来实现。这样您就可以使用 findElements 并检查 count > 0。
关于java - 检查 WebElement 对象中是否存在元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56815750/