selenium三种等待方式

1.强制等待

强制等待的优缺点:
强制等待(涉及到多个系统的交互时就用强制等待),不够灵活 time.sleep()
代码如下:
selenium三种等待方式

2.隐式等待

隐式等待(查找元素):背后默默的等待,几乎感觉不到他的存在
driver.implicitly_wait(10)
类似于监控系统,效率高,比较隐藏的凶手找不到
优点:智能等待,每初始化一次浏览器的时候,只需要设置一次,不像强制等待,每执行
一步就需要设置一次。

通俗点讲 就是设置一个全局的等待时间,比如10秒钟,如果第一秒钟就找到元素了,
那么将不用继续等待,程序会接着往下继续执行,比较智能,如果在10秒钟没有找到元素,
那么隐式等待就会报错。

缺点:只能用于去等待某一个元素是否被找到,也就是find_element能不能去找到这个元素,至于其他的等待就用不了,有局限性
代码如下:
selenium三种等待方式

3.显示等待

显式等待(明确等待的条件):
类似于派出专项小分队社卡检查
代码如下:
selenium三种等待方式

4.显示等待方法的封装

代码如下:
selenium三种等待方式
selenium三种等待方式
解释说明:
wait.until(EC.presence_of_element_located(locator))
等待元素加载出来,不一定在页面上可见,但是在HTML中能够进行定位。

wait.until(EC.element_to_be_clickable(locator))
等待元素页面上可见,并且可点击,也就是点击事件的JS加载完成。

wait.until(EC.visibility_of_element_located(locator))
等待元素在页面上可见。