扫码阅读
手机扫码阅读

Selenium等待:sleep、隐式、显式和Fluent

166 2024-04-16
Selenium等待和睡眠类型概述

为什么需要等待

基于JavaScript或Ajax的应用程序前端加载Web元素需要时间。Selenium测试用例可能会在元素加载完成前尝试定位它们,从而导致ElementNotVisibleException。

Selenium等待类型

Selenium提供几种等待类型以确保页面元素加载完成:Thread.Sleep()方法、隐式等待、显式等待和Fluent等待。

Thread.Sleep()方法

Thread.Sleep()会停止脚本执行一段指定时间。它不建议使用,因为它会增加脚本执行时间,如果元素加载时间超过预设时间,脚本可能会失败。

隐式等待

隐式等待允许WebDriver在元素加载到页面时继续执行,而不需要等待整个指定时间。它是全局的,一次设置适用于所有元素。

显式等待

显式等待允许在特定条件满足时停止脚本执行,如元素可点击或可见。它适用于特定的元素和条件。

Fluent等待

Fluent等待功能类似于显式等待,但提供了更灵活的轮询频率和异常忽略功能。它允许自定义等待条件。

隐式等待与显式等待的区别

  • 隐式等待适用于脚本中的所有元素,显式等待只适用于特定条件的特定元素。
  • 隐式等待不能基于特定条件进行等待,显式等待可以。
  • 隐式等待通常用于确定元素在特定时间内可见,显式等待用于不确定元素可见性的时间。

使用隐式和显式等待时,它们的等待时间是累积的,而不单独工作。Selenium的Fluent等待则允许更高的自定义,但因其复杂性不如显式等待受欢迎。

文章来源于FunTester公众号,原创分享爱好者。本摘要由专业文章总结助理生成。

以上是对原文的概要总结,其中包含Selenium的等待和睡眠类型的必要性、种类及其比较,并以html格式呈现。
想要了解更多,点击 查看原文