软件测试 / 测试开发丨 Web 自动化测试,强制等待与隐式等待
本文为霍格沃兹测试开发学社学员学习笔记分享
强制等待与隐式等待
目录
强制(直接)等待
隐式等待
显式等待
为什么要添加等待
避免页面未渲染完成后操作,导致的报错
复制代码
直接等待
解决方案:在报错的元素操作之前添加等待
原理:强制等待,线程休眠一定时间
演练环境:vip.ceshiren.com/
time.sleep(3)
复制代码
隐式等待
问题:难以确定元素加载的具体等待时间。
解决方案:针对于寻找元素的这个动作,使用隐式等待添加配置。
演练环境:vip.ceshiren.com/
原理:设置一个等待时间,轮询查找(默认 0.5 秒)元素是否出现,如果没出现就抛出异常
复制代码
复制代码
隐式等待无法解决的问题
元素可以找到,使用点击等操作,出现报错
原因:
页面元素加载是异步加载过程,通常 html 会先加载完成,js、css 其后
元素存在与否是由 HTML 决定,元素的交互是由 css 或者 js 决定
隐式等待只关注元素能不能找到,不关注元素能否点击或者进行其他的交互
解决方案:使用显式等待
显式等待基本使用(初级)
示例: WebDriverWait(driver 实例, 最长等待时间, 轮询时间).until(结束条件)
原理:在最长等待时间内,轮询,是否满足结束条件
演练环境: vip.ceshiren.com/#/ui_study
注意:在初级时期,先关注使用
复制代码
复制代码
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/ba1ca2ee999f3e138ce7a9d36】。文章转载请联系作者。
评论