selenium三种等待方式详解

🍅 **点击文末小卡片,**免费获取软件测试全套资料,资料在手,涨薪更快

在UI自动化过程中,常遇到元素未找到,代码报错的情况。这种情况下,需要用等待wait。

在selenium中可以用到三种等待方式即sleep ,implicitly_wait,WebDriverWait

一、固定等待(sleep)

导入time模块,设定固定的等待时间

缺点:在网络状态良好,元素可以加载出来的情况下,依然需要等待,会导致脚本允许时间延长。

二、隐式等待(implicitly_wait)

隐式等待是指页面元素在设定时间内全部加载完成,才能执行下一步。若超过了设定时间报异常

缺点:页面的JS一般是放在body的最后加载的,若JS没有加载,页面想要的元素已经出现,这时还要继续等待。

也会影响脚本执行速度。

三、显示等待(WebDriverWait)

通过from selenium.webdriver.support.wait import WebDriverWait 导入方法WebDriverWait()

参数:

**driver:**浏览器驱动

**timeout:**最长超时时间,单位秒

**poll_frequency:**监测频率时长,单位秒

**ignored_exception:**忽略的异常信息,若报的是元组内的异常,则不中断代码,继续执行。若报的元组外的异常,则中断代码,停止执行。

WebDriverWait函数中有until和until not两个方法:

until和until not都有参数method和message。注意这里的method参数必须含有_call_(),使得类实例对象可以像调用普通函数那样,以"对象名()"的形式使用

**method:**在等待时间内,每隔一段时间调用下method这个参数,判断返回值是否为True,若为True则执行下一步。

**message:**超时后,报TimeoutException写入message。

WebDriverWait与expected_conditions结合使用:

expected_conditions类提供的条件判断方法:

除了上述expected_conditions方法,还可以使用匿名函数lambda

lambda driver:driver.find_element(<定位元素>)

例如:WebDriverWait(driver, 5, 1).until(lambda driver:driver.find_element_by_id('kw'))

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
测试者家园18 小时前
DevOps 到底改变了测试什么?
运维·自动化测试·软件测试·devops·持续测试·智能化测试·软件测试和开发
@sinner18 小时前
你好,Scikit-learn:从零开始你的第一个机器学习项目
python·机器学习·scikit-learn
麦烤楽鸡翅18 小时前
简单迭代法求单根的近似值
java·c++·python·数据分析·c·数值分析
hyswl66619 小时前
2025年开发小程序公司推荐
python·小程序
独行soc19 小时前
2025年渗透测试面试题总结-258(题目+回答)
网络·python·安全·web安全·渗透测试·安全狮
程序员小远20 小时前
Appium-移动端自动测试框架详解
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
johnny23320 小时前
AI加持测试工具汇总:Strix、
人工智能·测试工具
青瓷程序设计20 小时前
花朵识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
hyswl66620 小时前
2025年郑州开发小程序公司推荐
python·小程序
B站计算机毕业设计之家20 小时前
基于Python音乐推荐系统 数据分析可视化 协同过滤推荐算法 大数据(全套源码+文档)建议收藏✅
python·数据分析·推荐算法