如何通过 Java 使用 Selenium WebDriver 等到所有加载程序消失

How to wait until all loaders disappears using Selenium WebDriver through Java

我正在使用 selenium 网络驱动程序,我需要等到所有加载程序都消失。我在仪表板页面上有 12 个小部件,我需要等到所有小部件都加载完毕。加载程序显示在每个小部件上。我使用了以下两种方法,但没有任何效果,也没有错误,它只是传递到下一个语句。

new WebDriverWait(driver,60)
.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//div[contains(text(),'Loader')]"))); 
WebDriverWait wait2 = new WebDriverWait(driver,60);
wait2.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("div.loader")));

因为您在仪表板页面上总共有 12 个小部件,您需要等到所有小部件都加载完毕,所以您必须为 invisibilityOfAllElements() and you can use either of the following 引入 WebDriverWait:

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.cssSelector("div.loader"))));
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.xpath("//div[@class='loader']"))));