1. 强制等待:sleep()
缺点:指定的时间过长,即使元素已经被加载出来了,但还是要是要继续等待,浪费时间。
2. 隐式等待:
缺点:可以把隐式等待当做全局变量,影响整个页面,程序需要等待整个页面加载完成才会执行下一步。但可能页面加载未完成时,需要定位的元素已经加载完成了,但受限于某些 JS 文件、图片加载特别慢,我们不能执行下一步,必须等到网页所有东西加载完后才能进行下一步。【增加不必要的加载时间】
3. 显式等待:
可以把显式等待看做是局部变量,作用域指定元素。
显示等待值只对指定元素生效,不再是在整个 WebDriver 生命周期生效。【对指定元素生效】
可以根据需要定位的元素来设置显式等待,无需等待页面完全加载,节省大量因加载无关紧要文件而浪费掉的时间。【针对元素设置,无需等待整个页面加载完成,节省加载时间】
element = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located((By.ID, 'kw')))
WebDriverWait(driver实例, 超时时长, 调用频率, 忽略的异常).until(要调用的 方法, 超时时返回的信息)
标签:区别,元素,指定,三种,聊聊,显式,加载,等待,页面 From: https://www.cnblogs.com/xianyumaixianyu/p/18277132