我有一个元素的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;
}


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

您还可以使用or预期条件

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

07-27 21:33