1、强制等待
time.sleep(3)
场景:元素未加载完成,用的不多
2、隐性等待
drive.implicitly_wait(5)
全局等待,一次设置,在浏览器初始化设置,每个元素定位,等待元素被加载,查找的最大等待时间为5
应用场景:查找元素、定位元素被加载
3、显性等待
等待一个元素被点击、等待一个元素可见、等待一个窗口被打开等
1、设置一个定时器
from selenium.webdriver.support.wait import WebDriverWait
wait = WebDriverWait(drive, timeout=5)
drive:浏览器对象
2、调用until方法,等待某个条件出现
from selenium.webdriver.support import expected_conditions
e = wait.until(expected_conditions.element_to_be_clickable((By.ID, “kw”)))
注:
element_to_be_clickable()等待元素被点击,传参为元组类型
visibility_of_element_located()等待元素可见
presence_of_element_located()等待元素出现
3、如果在20s之内,满足条件,包含了find_element()查找元素的操作,可直接操作元素,超时报错。
如:e.send_keys(“视频”)