强制等待:
- time.sleep(3)
- 在需要等待的操作之前加上等待时间time.sleep(3)强制等待固定时间3s。
隐式等待:
- driver.implicitly_wait(5)
- 隐式等待是一种智能等待,可以自动判断需要等待多久,括号中的5代表的是最大等待时间
- 隐式等待只需要在声明driver之后,写一次,就能影响后面所有的代码。
- 隐式等待判断的是页面元素的加载,如果页面没有刷新过,隐式等待就不起作用,比如跳弹出框。
显式等待:
显示等待的代码定义了等待条件,只有该条件触发,才执行后续代码。
# 导入包
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
# 显式等待
WebDriverWait(driver, 30, 0.5).until(expected_conditions.alert_is_present())
上述代码最大等待时间为30s,每0.5s去检测一次条件是否成立,一旦条件达到就执行下一步操作,否则最多等待30s还没达到条件就报错。
alert_is_present是条件,判断是否存在弹出框。