显示等待:指定等待的元素
隐式等待:针对全局,无指定元素
休眠:指定等待时间,不管元素是否存在
显式等待: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