selenium中提供常用的三种:强制等待time.sleep()、隐性等待implicitly_wait()、显性等待WebDriverWait()。
强制等待time.sleep()
强制等待字面意思,强制程序等待读秒到一定时间才执行下一步。需要导入time模块才可以使用。下面是之前文章里的代码。
from selenium import webdriver from time import sleep driver = webdriver.Firefox() driver.get('https://huilansame.github.io') sleep(5) # 强制等待5秒再执行下一步 print driver.current_url driver.quit()
这种叫强制等待,不管你浏览器是否加载完了,程序都得等待3秒,3秒一到,继续执行下面的代码,作为调试很有用,有时候也可以在代码里这样等待,不过不建议总用这种等待方式,太死板,严重影响程序执行速度。
隐性等待implicitly_wait()
隐型等待implicitly_wait()就是在一定的时间内等待页面加载完成,比如隐性等待10秒,5秒页面加载完成,则结束等待,执行下一步;如果10秒钟还没有加载完成也会执行下一步。浏览器加载完成与否可以看浏览器标签栏的状态按钮,“X”就是没加载完成,但是有些页面元素加载完成,但是有些JS、图片加载慢元素,导致要一直等到最大等待时长才进行下一步。
from selenium import webdriver driver = webdriver.Firefox() driver.implicitly_wait(10) # 隐性等待,最长等10秒 driver.get('https://huilans