selenium的三種等待方式


一、強制等待:

  time.sleep(3)---->強制等待3秒

二、隱式等待: 

  driver.implicitly_wait(20)
  含義:設置的這個20秒表示最大等待時長,它等待到什么情況結束呢?--->它就相當於我們在瀏覽器中,加載一個頁面,看到頁面不在轉圈圈,全部加載完成之后,才算等待結束。
  全部加載完成在瀏覽器其實包含以下內容:
    1.頁面的html從服務器返回。
    2.頁面的所有靜態資源,js,css,img,廣告,全部從服務器獲取,在加載到頁面中。

  隱式等待的弊端:
  一般我們在寫程序的時候,這里使用等待,最主要的目的就是等待我們想要的數據能夠出來就可以了。用隱式等待他是等到所有資源都加載的完成的,我們花了一部分時間,去等待我們不想要的資源,所以隱式等待並不常用。

三、顯式等待:會設置一個條件,當頁面滿足該條件時,等待完成!

  調用模塊

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

    創建一個等待對象

wait=WebDriverWait(driver"""等待作用的那個driver""",20"""最大等待時長,超過時長會報timeout異常""")
wait.until(
            EC.presence_of_element_located(
                    By.XPATH"""定位器的選擇器名稱。By.ID,By.CSS_SELECTOR""",'//div[@class="recreit-list"]' """定位器""",locator))

presence_of_element_located:等待條件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM