强制等待
from time import sleep
sleep(10)
# 强制等待10秒再执行下一步
缺点:是不管资源是不是完成,都必须等待
隐性等待
driver.implicitly_wait(20)
# 设置全局元素等待超时时间20秒
#设置一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步,超出设置的时长20秒还没有定位到元素,则抛出异常。
缺点:程序会一直等待整个页面加载完成,直到超时,但有时候我需要的那个元素早就加载完成了,只是页面上有个别其他元素加载特别慢,我仍要等待页面全部加载完成才能执行下一步。
注意:对driver起作用,所以只要设置一次即可,没有必要到处设置
显性等待
需先引用相关的库
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
语法:
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
例如:等待百度输入框元素出现,每隔0.5秒去查看kw元素是否出现,共检查5秒&#