1.sleep(s) python time 模块下面的方法
2.implicitly_wait(s) webdriver 隐式等待
3.WebDriverWait 显示等待 Selenium 模块中的 EC 类提供的方法
sleep:强制等待,比如 sleep(50) 强制等待 50s,50s 之内不做任何事情。它的作用是1.实现元素定位的稳定性。2.增强执行过程的观看性
implicitly_wait(s):隐式等待,比如 implicitly_wait(100) 在 100S 以内,如果元素在第3s 被加载出来,自动执行下面的脚本,不会一直等待 100s,如果说在超过 100s 以外,元素依然没有被加载出来,那就会报错!NosuchElementError 错。该方法是 webdriver api提供的方法。
1.sleep(s)方法的使用,代码实例如下
from selenium import webdriver
from time import sleep #导致sleep的包,才能使用sleep
dr=webdriver.Chrome()
url='http://www.baidu.com'
sleep(3) #强制睡眠3秒
dr.get(url)
dr.maximize_window()
sleep(3) #强制睡眠3秒
dr.find_element_by_id('kw').send_keys('jamesxie')
sleep(3) #强制睡眠3秒
dr.find_element_by_id('su').click()
2.implicitly_wait(s)方法的使用,代码实例如下
from selenium import webdriver
dr=webdriver.Chrome()
url='http://www.baidu.com'
dr.implicitly_wait(10) #隐式等待,这个等待是贯穿整个程序的执行过程,不需要像sleep那样反复在很 多操作步骤前加等待时间。很方便
dr.get(url)
dr.maximize_window()
dr.find_element_by_id('kw').send_keys('jamesxie')
dr.find_element_by_id('su').click()
3.WebDriverWait 显示等待方法的使用,代码实例如下
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait #必须先导入webDriverWait的包
dr=webdriver.Chrome()
url='http://www.baidu.com'
dr.get(url)
dr.maximize_window()
element=WebDriverWait(dr,10).until(lambda dr:dr.find_element_by_id('kw')) #使用webDriverWait 显示等待的方法设置等待时间
#执行发送事件
element.send_keys('jamesxie')
#执行点击事件
dr.find_element_by_id('su').click()