java - 检查 DOM 中是否存在元素的条件

标签 java selenium

我正在使用 if block 来检查产品是否有库存或缺货。但它没有执行 else block ,我也不想将 else 部分放在 catch block 中。

我已经使用了 isDisplayedisEnabled 但仍然无法正常工作。

try {
    if (driver.findElement(By.xpath("//span[contains(text(),'Currently unavailable.')]"))
            .isEnabled()) {
        o1.put("STOCK", "Out of Stock");
    } else {
        o1.put("STOCK", "In Stock");
    }
} catch (NoSuchElementException e) {
    e.printStackTrace();
}

最佳答案

建议使用findElements()每当检查元素是否存在时的方法 因为如果发生超时,它将返回空列表而不是异常,并且在 findElements() 的情况下,您可以免于处理异常。因此,使用下面的代码删除您不需要的 try catch

if(driver.findElements(By.xpath("//span[contains(text(),'Currently unavailable.')]")).size() > 0) {
    o1.put("STOCK", "Out of Stock");
} else {
    o1.put("STOCK", "In Stock");
}

正如您在 if 条件代码中提到的,如果在到达方法 .isEnabled() 之前未找到元素,它总是会引发异常。

关于java - 检查 DOM 中是否存在元素的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59354632/

相关文章:

java - 为什么 Cobertura 在通过 Eclipse 插件运行时报告覆盖率为 0%?

java - MVC中类间消息传递的正确方法是什么?

python - 在 Robot Framework 中禁用 "DevTools listening on ws://127.0.0.1..."日志消息

java - 如何使用 Selenium WebDriver 在新选项卡中打开网页

ruby - 在 watir-webdriver 和 phantomjs 中设置 "Accept-Language" header

java - Maven 将生成的文档/json 文件上传到存储库

java - 在 servlet 中获取 cookie

java - 何时使用环境变量与系统属性?

java - 如何使用java自动从日历中选择特定日期

jquery - Python & Selenium 无法在日期选择器中选择日期