1、強制等待:css
time.sleep(3)---->強制等待3秒html
2、隱式等待: web
driver.implicitly_wait(20)
含義:設置的這個20秒錶示最大等待時長,它等待到什麼狀況結束呢?--->它就至關於咱們在瀏覽器中,加載一個頁面,看到頁面不在轉圈圈,所有加載完成以後,纔算等待結束。
所有加載完成在瀏覽器其實包含如下內容:
1.頁面的html從服務器返回。
2.頁面的全部靜態資源,js,css,img,廣告,所有從服務器獲取,在加載到頁面中。
隱式等待的弊端:
通常咱們在寫程序的時候,這裏使用等待,最主要的目的就是等待咱們想要的數據可以出來就能夠了。用隱式等待他是等到全部資源都加載的完成的,咱們花了一部分時間,去等待咱們不想要的資源,因此隱式等待並不經常使用。瀏覽器
3、顯式等待:會設置一個條件,當頁面知足該條件時,等待完成!服務器
調用模塊spa
from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdrver.common.by import By
建立一個等待對象code
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:等待條件。htm