扫码阅读
手机扫码阅读
Selenium等待:sleep、隐式、显式和Fluent
364 2024-04-16
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
FunTester
扫码关注公众号
为什么需要等待
基于JavaScript或Ajax的应用程序前端加载Web元素需要时间。Selenium测试用例可能会在元素加载完成前尝试定位它们,从而导致ElementNotVisibleException。
Selenium等待类型
Selenium提供几种等待类型以确保页面元素加载完成:Thread.Sleep()方法、隐式等待、显式等待和Fluent等待。
Thread.Sleep()方法
Thread.Sleep()会停止脚本执行一段指定时间。它不建议使用,因为它会增加脚本执行时间,如果元素加载时间超过预设时间,脚本可能会失败。
隐式等待
隐式等待允许WebDriver在元素加载到页面时继续执行,而不需要等待整个指定时间。它是全局的,一次设置适用于所有元素。
显式等待
显式等待允许在特定条件满足时停止脚本执行,如元素可点击或可见。它适用于特定的元素和条件。
Fluent等待
Fluent等待功能类似于显式等待,但提供了更灵活的轮询频率和异常忽略功能。它允许自定义等待条件。
隐式等待与显式等待的区别
- 隐式等待适用于脚本中的所有元素,显式等待只适用于特定条件的特定元素。
- 隐式等待不能基于特定条件进行等待,显式等待可以。
- 隐式等待通常用于确定元素在特定时间内可见,显式等待用于不确定元素可见性的时间。
使用隐式和显式等待时,它们的等待时间是累积的,而不单独工作。Selenium的Fluent等待则允许更高的自定义,但因其复杂性不如显式等待受欢迎。
以上是对原文的概要总结,其中包含Selenium的等待和睡眠类型的必要性、种类及其比较,并以html格式呈现。想要了解更多内容?
文章来源:
FunTester
扫码关注公众号
FunTester的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线