等待多个图表加载

时间:2019-04-30 12:34:21

标签: python selenium

我在一个仪表板上有多个图表。我要等到所有图表加载完毕。我已经在Java中完成了这段代码。我想用python完成。 请帮助

wait.until(new ExpectedCondition<Boolean>() {

       public Boolean apply(WebDriver driver) {

           Iterator<WebElement> eleIterator = driver.findElements(By.xpath("//img[@class='loading']")).iterator();

           while (eleIterator.hasNext())                    
             {
               boolean displayed = false;
               try
               {
                   displayed = eleIterator.next().isDisplayed();     
               }

               catch (NoSuchElementException | StaleElementReferenceException e) 
               {
                   displayed = false;
               }
               if (displayed) 
               {
                   return false;

               } 
             }
           }
           return true;
       }
   });

我要使用python或任何建议如何在硒python中加载所有图表之前使用此代码

1 个答案:

答案 0 :(得分:0)

您可以使用python中的显式wait,等待所有元素在DOM中可见或存在。

WebDriverWait(driver,30).until(EC.visibility_of_all_elements_located((By.XPATH,"//img[@class='loading']")))

OR

WebDriverWait(driver,30)until(EC.presence_of_all_elements_located((By.XPATH,"//img[@class='loading']")))

要使用显式等待,您必须导入以下内容

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC