python3 selenium设置元素等待的3种方法2018-08-21

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()

你可能感兴趣的:(python3 selenium设置元素等待的3种方法2018-08-21)