python !webdriver智能等待处理

 在我们日常进行自动化时,对元素操作后需要模拟用户操作的一样等待一会,让程序或者进程操作完成,那么在Python代码中有哪些等待方式可以使用呢?今天给大家整理一下:

方法一: 使用强制等待

添加强制等待非常简单,我们只需要引入time 包,就可以在脚本中自由的添加强制等待时间了。

代码示例:

#-*- coding:utf-8 -*-
from selenium import webdriver
from time import sleep 
# 这个是python程序主入口
if __name__ == "__main__": 
# 启动浏览器
browser = webdriver.Firefox()
# 打开百度
browser.get("http://www.baidu.com") 
# 休眠3秒
time.sleep(3) 
# 输入搜索关键字并开始搜索
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click() 
# 休眠5秒
time.sleep(5)  
# 退出浏览器
browser.quit() 

方式二:使用implicitly_wait方法进行智能等待

通过添加implicitly_wait() 方法就可以方便的实现智能等待;

如:implicitly_wait(30)

该用法应该比time.sleep() 更智能,time.sleep() 只能选择一个固定的时间的等待,

implicitly_wait( )可以在一个时间范围内智能的等待。

文档解释:

selenium.webdriver.remote.webdriver.implicitly_wait(time_to_wait)

隐式地等待一个无素被发现或一个命令完成;这个方法每次会话只需要调用一次

代码示例:

#-*- coding:utf-8 -*
from selenium import webdriver
from time import sleep
# 这个是python程序主入口
if __name__ == "__main__": 
# 启动浏览器
browser = webdriver.Firefox() 
# 打开百度
browser.get("http://www.baidu.com") 
#智能等待30秒
browser.implicitly_wait(30) 
# 输入搜索关键字并开始搜索
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click() 
# 强制等待5秒
time.sleep(5)  
# 退出浏览器
browser.quit() 

 请思考:

​    这是真正意义上的智能等待么?如果不是我们又应当采取什么样的处理方式来实现智能等待呢?欢迎讨论区留言讨论~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值