转载于:http://www.blogjava.net/qileilove/articles/412450.html
四、添加等待时间
有时候为了保证脚本运行的稳定性,需要脚本中添加等待时间。
4.1、添加休眠
添加休眠非常简单,我们需要引入 time 包,就可以在脚本中自由的添加休眠时间了。
# coding = utf-8
博客园—虫师
http://fnng.cnblogs.com
16
from selenium import webdriver
import
time
#调入 time 函数
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
time.sleep(0.3)
#休眠0.3秒
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
time.sleep(3)
# 休眠3秒
browser.quit()
4.2、智能等待
通过添加 implicitly_wait() 方法就可以方便的实现智能等待;implicitly_wait(30)
的用法应该比 time.sleep() 更智能,后者只能选择一个固定的时间的等待,前者可以
在一个时间范围内智能的等待。
文档解释:
selenium.webdriver.remote.webdriver.implicitly_wait(time_to_wait)
隐式地等待一个无素被发现或一个命令完成;这个方法每次会话只需要调用一次
time_to_wait: 等待时间
用法:
browser.implicitly_wait(30)
# coding = utf-8
from selenium import webdriver
import
time
#调入 time 函数
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
browser.implicitly_wait(30)
#智能等待30秒
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
browser.quit()
或者使用
wait.until(lambda browser: browser.find_element_by_id('dialog-iframe-search'))
这样效果更好