顯示等待:指定等待的元素
隱式等待:針對全局,無指定元素
休眠:指定等待時間,不管元素是否存在
顯式等待:element = WebDriverWait(瀏覽器,最大等待時間,檢測頻率) //時間單位s,檢查頻率默認0.5s,可以省略
顯式等待需要導入WebDriverWait類:from selenium.webdriver.support.ui import WebDriverWait
一般搭配until()和until_not()使用:
- until()調用該方法,直到返回值為ture
- until_not():調用該方法,直到返回值為false
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC dr = webdriver.Firefox() dr.get("https://baidu.com") element = WebDriverWait(dr,5).until( EC.presence_of_element_located((By.ID, "kw")) ) print element
presence_of_element_locate() 判斷元素是否存在頁面中,但元素不一定可見,需要導入expected_conditions和by
如果無法定位,返回信息timeout
隱式等待:implicitly_wait(最大等待時間)
from selenium import webdriver dr = webdriver.Firefox() dr.implicitly_wait(10) dr.get("https://baidu.com") dr.find_element_by_id('kw')
休眠:sleep(休眠時間)
休眠需要導入sleep類:from time import sleep