java - 等待列表中的元素之一

标签 java selenium selenium-webdriver

我有一个元素的 waitinf 代码:

public WebElement waitElement(String selector) {
        WebElement element = wait.until((WebDriver d) -> d.findElement(By.cssSelector(selector)));
        return element;
}

我有一个带表格的网格。所以我总是等待行的出现。 但如果表是空的,我就会遇到问题。在这种情况下,我在网格中有一个“no-data_grid”类的元素。

所以问题是如何等待这两个元素之一?

最佳答案

您可以使用cssSelector,来等待其中之一

public WebElement waitElement(String firstLocator, String secondLocator) {
    WebElement element = wait.until((WebDriver d) -> d.findElement(By.cssSelector(firstLocator + ", " + secondLocator)));
    return element;
}

当驱动程序设法找到其中一个元素时,这将返回。

您还可以使用预期条件

wait.until(
    ExpectedConditions.or(
        ExpectedConditions.presenceOfElementLocated(By.cssSelector(firstLocator)),
        ExpectedConditions.presenceOfElementLocated(By.cssSelector(secondLocator))
    )
);

关于java - 等待列表中的元素之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584789/

相关文章:

java - 如何使用 Java 使用 Selenium 运行 ghostdriver

java - 如何使用 oAuth 获取 facebook 的登录页面?

java - 关于 Intellij IDEA 与 scala 的问题

ruby-on-rails-3 - Cucumber 和 Capybara 需要不同的 Selenium-Webdriver gem 版本 - 尝试设置测试环境

java - 运行 Selenium 的问题

c# - 在服务器上运行 Selenium 测试的理想方法是什么

java - 调用接受对象数组作为参数的静态方法时出错

java - Hibernate 使用悲观锁还是乐观锁?

python - Selenium 不起作用?

java - 尝试使用 selenium 4 打开新选项卡时,我看到 "Selenium.InvalidArgumentException: invalid argument"错误