等待列表中的一个元素

时间:2017-01-11 07:13:49

标签: 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"的元素。上课。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

您还可以使用or预期条件

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