聊聊三种等待的区别

1. 强制等待:sleep()

缺点:指定的时间过长,即使元素已经被加载出来了,但还是要是要继续等待,浪费时间。

 

2. 隐式等待:

缺点:可以把隐式等待当做全局变量,影响整个页面,程序需要等待整个页面加载完成才会执行下一步。但可能页面加载未完成时,需要定位的元素已经加载完成了,但受限于某些 JS 文件、图片加载特别慢,我们不能执行下一步,必须等到网页所有东西加载完后才能进行下一步。【增加不必要的加载时间】

 

3. 显式等待:

可以把显式等待看做是局部变量,作用域指定元素。

显示等待值只对指定元素生效,不再是在整个 WebDriver 生命周期生效。【对指定元素生效】

可以根据需要定位的元素来设置显式等待,无需等待页面完全加载,节省大量因加载无关紧要文件而浪费掉的时间。【针对元素设置,无需等待整个页面加载完成,节省加载时间】

element = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located((By.ID, 'kw')))

WebDriverWait(driver实例, 超时时长, 调用频率, 忽略的异常).until(要调用的 方法, 超时时返回的信息) 

 
posted @ 2024-06-30 22:59  努力的小测试  阅读(1)  评论(0编辑  收藏  举报