**
· sleep(): 强制等待,设置固定休眠时间。 python 的 time 包提供了休眠方法 sleep() , 导入time 包后就可以使用 sleep(),进行脚本的执行过程进行休眠。
· implicitly_wait():隐式等待,也叫智能等待,是 webdirver 提供的一个超时等待。隐的等待一个元素被发现,或一个命令完成。如果超出了设置时间的则抛出异常。
· WebDriverWait():显示等待,同样也是 webdirver 提供的方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s,默认抛出异常为:NoSuchElementException
下面通过一个实例来加深理解:
#coding=utf-8
from selenium import webdriver
#导入 WebDriverWait 包from selenium.webdriver.support.ui import WebDriverWait
#导入 time 包from sleep import sleep
driver = webdriver.Firefox()
driver.get(“http://www.baidu.com“)
#WebDriverWait()方法使用element=WebDriverWait(driver, 10).until(lambda driver : driver.find_element_by_id(“kw”)) #
element.send_keys(“selenium”)
#添加智能等待driver.implicitly_wait(30) #implicitly_wait()方法比 sleep() 更加智能,后者只能选择一个固定的时间的等待,前者可以在一个时间范围内智能的等待driver.find_element_by_id(“su”).click()
#添加固定休眠时间sleep(5) #sleep()方法以秒为单位,假如休眠时间小时 1 秒,可以用小数表示。driver.quit()
