news 2026/8/29 5:09:33

自动化测试之等待方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动化测试之等待方式

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

在自动化测试中,等待是一个重要的技术,用于处理页面加载、元素定位、元素状态改变等延迟问题。

等待能够确保在条件满足后再进行后续操作,提高自动化测试的稳定性以及可靠性。

等待方式:显示等待、隐式等待、线程睡眠

1. 显式等待(Explicit Wait)

一种在自动化测试中使用的等待方式,它的特点是在代码中明确地指定一个特定的条件,等待直到条件满足后再继续执行后续代码。

显式等待通常用于等待特定的条件发生,比如等待元素可见、可点击、存在等。

通过显示等待,可以解决页面加载或元素定位的延迟问题,确保在条件满足后再进行后续操作,避免不必要的等待时间。

在使用显示等待时,需要结合Selenium的WebDriverWait和expected_conditions模块来实现。

WebDriverWait负责等待的设置,expected_conditions模块提供了一系列常用的条件,可以根据具体的需求选择合适的条件。

等待步骤:

1)初始化WebDriverWait对象,指定等待时间和浏览器驱动。

2)调用until方法,传入要等待的条件。

3)在until方法中,会不断地轮询条件是否满足,直到条件满足或超时时间到达。

4)如果条件满足,继续执行后续代码。

5)如果超过超时时间后仍未满足条件,则抛出TimeoutException异常。

在每次轮询中,显示等待会等待一小段时间,然后再次检查条件是否满足。

这个小段时间是通过指定的等待时间和轮询间隔来控制的,条件满足,则立即继续执行后续代码;如果条件不满足,则继续等待。

代码实例:

2. 隐式等待(Implicit Wait)

自动化测试中使用的等待方式,特点是在代码中设置一个等待时间,如果在指定的时间内找到了元素,则继续执行后续代码。超过了指定的时间仍未找到元素,则抛出异常。

在设置隐式等待后,在代码中使用了元素定位的方法,如find_element_by_xpath、find_element_by_id等,会在指定的等待时间内等待元素出现。

在执行每个元素定位操作之前,先等待一段时间,等待的时间由设置的等待时间决定。

这个等待时间是一个全局性的设置,对整个代码执行过程中的所有元素定位都生效。

代码实例:

隐式等待可能会导致等待时间过长或过短的情况,设置的等待时间过长,则会增加测试时间。

设置的等待时间过短,会导致找不到元素而抛出异常。

在使用隐式等待时需要根据具体的需求和网页加载速度来合理设置等待时间。

3. 线程睡眠(Thread.sleep)

在代码中使用Thread.sleep()方法,暂停执行一段时间。

这种等待方式是固定的,不管条件是否满足都会等待指定的时间。

代码实例:

线程睡眠可以实现等待的效果,但不太推荐在自动化测试中大量使用它,因为线程睡眠是一个固定的等待时间,无法灵活地根据条件来进行等待。

如果条件提前满足,线程仍然会暂停执行指定的时间,导致测试效率低下和不稳定。

相比于线程睡眠,使用显示等待或隐式等待等更灵活的等待方式更加推荐。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 16:34:03

协同过滤性能优化技巧:高并发场景应用

如何让协同过滤扛住百万QPS?高并发推荐系统的实战优化之路 你有没有遇到过这样的场景:双十一刚到,首页推荐接口突然响应变慢,P99延迟飙升到500ms以上,用户开始抱怨“怎么老是推我不感兴趣的东西”?后台监控…

作者头像 李华
网站建设 2026/8/28 21:06:33

CUDA高性能计算系列06:流 (Stream) 与并发执行

CUDA高性能计算系列06:流 (Stream) 与并发执行摘要:在之前的文章中,我们的视角主要集中在 GPU 内部(Kernel 优化)。但在宏观层面,CPU 和 GPU 是两个独立的处理器,GPU 内部也有拷贝引擎&#xff…

作者头像 李华
网站建设 2026/8/27 22:39:00

手把手教你识别影响USB3.1传输速度的关键因素

揭秘USB3.1为何跑不满速?一文看懂性能瓶颈的真正根源你有没有遇到过这种情况:花高价买了个标称“USB3.1 Gen 2”的移动固态硬盘,插上去拷贝4K视频,结果速度卡在300MB/s,连宣传的一半都没到?更离谱的是&…

作者头像 李华
网站建设 2026/8/19 8:44:52

新手必看:Proteus示波器配合8051仿真实践入门

从代码到波形:用Proteus示波器“看见”8051的脉搏你有没有过这样的经历?写好了单片机程序,烧录进芯片,结果LED不闪、电机不动。万用表测电压倒是正常,可问题到底出在哪儿?是延时不对?还是引脚没…

作者头像 李华