强制等待:
time模块中的sleep(a)a代表的是秒数
在a秒后不管当前是否要进行什么操作,都会运行sleep后的代码。
如下代码,先打开百度这个网址,然后再打开的百度的同时就开始计时2秒,到时间直接进入京东网址,然后进入百度网址(这里注意,不是京东加载完才开始执行百度网址,而是刚打开京东,然后就开始打开百度网址了),在进入京东网址的同时就开始计时3秒,到时间不管是否加载完都执行下面的关闭语句。
from selenium import webdriver
a=webdriver.Chrome()
a.get('https://www.baidu.com/')
time.sleep(2)
a.execute_script('window.open("https://www.jd.com/")')
a.execute_script("window.open('https://www.baidu.com/')")
time.sleep(3)
# a.close()
a.quit()
隐性等待:
implicitly_wair(a),这个a代表的也是秒数,和sleep不一样的是,这里的a代表的是设置了一个最长要等待的时间。意思是我在这里等你a秒,你如果早一点加载完,那我们就进行下一步,要么我最多等你a秒,过时间我就开始让执行下一个了。
显性等待:
WebDriverWait,显性等待一般是配合unit()和unit_not()方法使用的,意思是用了显性等待就是程序每隔一个固定的时间就会检查我们的需求有没有达到,达到了就执行下一步,没达到就接着等下一次检测。相对比隐性会节省时间,因为在隐性中可能我们要的需求已经出来了,但是页面还未加载完,那么这时候我们还要等待我们不需要的其他数据加载完在执行下一步,浪费时间,这里就可以使用到显性等待。