聊聊三种等待的区别
1. 强制等待:sleep()
缺点:指定的时间过长,即使元素已经被加载出来了,但还是要是要继续等待,浪费时间。
2. 隐式等待:
缺点:可以把隐式等待当做全局变量,影响整个页面,程序需要等待整个页面加载完成才会执行下一步。但可能页面加载未完成时,需要定位的元素已经加载完成了,但受限于某些 JS 文件、图片加载特别慢,我们不能执行下一步,必须等到网页所有东西加载完后才能进行下一步。【增加不必要的加载时间】
3. 显式等待:
可以把显式等待看做是局部变量,作用域指定元素。
显示等待值只对指定元素生效,不再是在整个 WebDriver 生命周期生效。【对指定元素生效】
可以根据需要定位的元素来设置显式等待,无需等待页面完全加载,节省大量因加载无关紧要文件而浪费掉的时间。【针对元素设置,无需等待整个页面加载完成,节省加载时间】
element = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located((By.ID, 'kw')))
WebDriverWait(driver实例, 超时时长, 调用频率, 忽略的异常).until(要调用的 方法, 超时时返回的信息)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix