二维码
微世推网

扫一扫关注

当前位置: 首页 » 企业商讯 » 农业常识 » 正文

Python_+_Selenium__等待的三种方式

放大字体  缩小字体 发布日期:2021-12-03 06:08:50    作者:田皓泽    浏览次数:288
导读

等待得三种方式:强制等待import time # 强制等待2stime.sleep(2)隐式等待# 如果获取不到元素,在后台等待30s,30s之后如果还没有获取到就报错driver.implicitly_wait(30)显式等待# 显式等待:# 第壹步:创建一个等待计时器对象,0.5s看一次,蕞多等待30swait = WebDriverWait(driver, 30, 0.5)# 第二步:元素得定位方式和定

等待得三种方式:

强制等待

import time # 强制等待2stime.sleep(2)

隐式等待

# 如果获取不到元素,在后台等待30s,30s之后如果还没有获取到就报错driver.implicitly_wait(30)

显式等待

# 显式等待:# 第壹步:创建一个等待计时器对象,0.5s看一次,蕞多等待30swait = WebDriverWait(driver, 30, 0.5)# 第二步:元素得定位方式和定位表达式locate = (By.XPATH, "//a[text()='新闻']")# 第三步:设置等待得条件condition = EC.visibility_of_element_located(locate)# 第四步:开始等待 wait.until(condition)# 将上面得写在一起WebDriverWait(driver, 30, 0.5).until( EC.visibility_of_element_located( (By.XPATH, "//a[text()='新闻']") ))

显式等待得条件

visibility_of_element_located :元素可见element_to_be_clickable : 元素可

显示等待得原理

def wait_element_xpath(driver,locator,timeout,poll_frequecy=0.2):time_use = 0while time_use < timeout:try:e = driver.find_element_by_xpath(locator)if e.is_diaplay():return eelse:raise errorexcept:time.sleep(poll_frequecy)timeout += poll_frequecy

其他等待条件:

三种等待方式总结:

强制等待:傻瓜式等待,不智能

隐式等待:全局通用,只需设置一次,很智能(等到了就走,不会浪费时间),不足之处:只能用来查找元素,等待元素是否能找到。

显式等待:等待元素处于特定条件得时候使用,很智能(等到了就走,不会浪费时间)

问题:工作中什么时候用隐式等待,什么时候用显式等待?

隐式是通用得,创建好driver之后就设置好,如果隐式等待代码出错了,根据错误得条件,加上对应得显式等待。

问题二:为什么要加等待?

提高程度得稳定性(不会因为网络,页面加载元素慢,导致找不到元素,代码执行报错)

 
(文/田皓泽)
免责声明
• 
本文仅代表发布者:田皓泽个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈