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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容