扫码阅读
手机扫码阅读
Selenium等待:sleep、隐式、显式和Fluent
166 2024-04-16
为什么需要等待
基于JavaScript或Ajax的应用程序前端加载Web元素需要时间。Selenium测试用例可能会在元素加载完成前尝试定位它们,从而导致ElementNotVisibleException。
Selenium等待类型
Selenium提供几种等待类型以确保页面元素加载完成:Thread.Sleep()方法、隐式等待、显式等待和Fluent等待。
Thread.Sleep()方法
Thread.Sleep()会停止脚本执行一段指定时间。它不建议使用,因为它会增加脚本执行时间,如果元素加载时间超过预设时间,脚本可能会失败。
隐式等待
隐式等待允许WebDriver在元素加载到页面时继续执行,而不需要等待整个指定时间。它是全局的,一次设置适用于所有元素。
显式等待
显式等待允许在特定条件满足时停止脚本执行,如元素可点击或可见。它适用于特定的元素和条件。
Fluent等待
Fluent等待功能类似于显式等待,但提供了更灵活的轮询频率和异常忽略功能。它允许自定义等待条件。
隐式等待与显式等待的区别
- 隐式等待适用于脚本中的所有元素,显式等待只适用于特定条件的特定元素。
- 隐式等待不能基于特定条件进行等待,显式等待可以。
- 隐式等待通常用于确定元素在特定时间内可见,显式等待用于不确定元素可见性的时间。
使用隐式和显式等待时,它们的等待时间是累积的,而不单独工作。Selenium的Fluent等待则允许更高的自定义,但因其复杂性不如显式等待受欢迎。
以上是对原文的概要总结,其中包含Selenium的等待和睡眠类型的必要性、种类及其比较,并以html格式呈现。
想要了解更多,点击
查看原文
FunTester的其他文章
JsonPath验证类既Groovy重载操作符实践
在使用JsonPath工具类封装进行接口响应的验证过程中,由于使用原生的JsonPath的API获取到的值默认是object,如果需要转成其他类型需要多些一些代码。
测试Java初学者建议
作为测试工程师,我们需要具备扎实的编程技能,能够熟练掌握至少一门编程语言。
Kafka性能测试初探
Kafka是一种高性能的分布式消息系统。
Selenium 中并行测试的重要性
随着技术的进步,测试解决方案变得更具可扩展性,加速了团队从手动测试到Selenium测试自动化的转型。
高效Mobile DevOps步骤
在当今的组织环境中,DevOps是最常用的流行语,并已成为其敏捷软件文化的一部分。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线