Python+selenium自动化之等待

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

你可能感兴趣的:(python,selenium,自动化)