设置等待时间

1、WebDriverWait()——显式等待

 

 一个显式等待是你定义的一段代码,用于等待某个条件发生然后再继续执行后续代码。

需要导入WebDriverWait包

 

#导入 WebDriverWait 包
from selenium.webdriver.support.ui import WebDriverWait

2、implicitly_wait()——隐式等待

相当于设置全局的等待,在定位元素时,对所有元素设置超时时间。

隐式等待一个元素被发现或一个命令完成。如果超出了设置时间则抛出异常。

 

3、sleep()——强制等待

设置固定休眠时间

#导入 time 包
import time

4、练习

 1 #coding=utf-8
 2 from selenium import webdriver
 3 
 4 #导入 WebDriverWait 包
 5 from selenium.webdriver.support.ui import WebDriverWait
 6 
 7 #导入 time 包
 8 import time
 9 
10 driver = webdriver.Firefox()
11 driver.get("http://www.baidu.com")
12 
13 #WebDriverWait()方法使用
14 element = WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_id("kw"))
15 element.send_keys("selenium")
16 
17 #添加隐式等待
18 driver.implicitly_wait(30)
19 driver.find_element_by_id("su").click()
20 
21 #添加固定休眠时间
22 time.sleep(2)
23 
24 driver.close()
View Code

5、WebDriverWait()方法详解

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
  driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)
  timeout - 最长超时时间,默认以秒为单位
  poll_frequency - 休眠时间的间隔(步长)时间,默认为 0.5
  ignored_exceptions - 超时后的异常信息,默认情况下抛 NoSuchElementException 异常。

WebDriverWai()一般由 unit()until_not()方法配合使用,下面是 unit()until_not()方法的说明。

  • until(method, message=’ ’)调用该方法提供的驱动程序作为一个参数,直到返回值不为 False

 

  • until_not(method, message=’ ’)调用该方法提供的驱动程序作为一个参数,直到返回值为 False

 

posted @ 2017-06-28 14:44  蓝裙子  阅读(454)  评论(0编辑  收藏  举报