您的位置:首页 > 其它

【selenium——添加等待时间】

2017-04-09 19:40 369 查看
a.添加固定的休眠时间,引入time包

python的time包提供的sleep()方法

例如:

1 #coding=utf-8
2 from selenium import webdriver
3 import time
4
5 browser=webdriver.Firefox()
6 browser.get("http://www.baidu.com")
7 time.sleep(10)        #打开页面等待10秒
8 browser.find_element_by_id("kw").send_keys("selenium")
9 browser.find_element_by_id("su").click()
10
11 time.sleep(10)         #浏览器10秒后关闭
12 browser.quit()


b.添加智能等待,隐式的等待一个元素被发现或一个命令完成

webdriver提供的超时等待,implicitly_wait()方法

例如:

1 #coding=utf-8
2 from selenium import webdriver
3 import time
4
5 browser=webdriver.Firefox()
6 browser.get("http://www.baidu.com")
7 browser.implicitly_wait(20)        #智能等待20秒
8 browser.find_element_by_id("kw").send_keys("selenium")
9 browser.find_element_by_id("su").click()
10
11 browser.quit()


c.添加智能等待时间,在设置的时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。

由webDriver提供webDriverWait()方法

1 #coding=utf-8
2 from selenium import webdriver
3 from selenium.webdriver.support.ui import WebDriverWait
4
5 driver=webdriver.Ie()
6 driver.get("http://www.baidu.com")
7 #最长超时时间设置为10秒,默认步长为0.5秒,默认抛出NoSuchElementException异常
8 element=WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_id("kw"))
9 element.send_keys("selenium")
10
11 driver.quit()


WebDriverWai()一般由 unit()或 until_not()方法配合使用,例如:

1 from selenium.webdriver.support.ui import WebDriverWait
2 ....
3 element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id(“someId”))
4 is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).
5 until_not(lambda x: x.find_element_by_id(“someId”).is_displayed())


until(method, message=’’)

调用该方法提供的驱动程序作为一个参数,直到返回值不为 False

until_not(method, message=’’)

调用该方法提供的驱动程序作为一个参数,直到返回值为 False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: