自动化测试三大等待时间(强制等待,显示等待,隐式等待)

三大等待时间分别是强制等待(Sleep)、隐式等待(Implicit Wait) 和显式等待(Explicit Wait)

1.强制等待(sleep)

代码示例:

# python
import time

time.sleep(1)     # 强制等待3秒

适用场景:

  • 临时调试时使用,明确知道操作需要固定时间(如页面跳转有固定延迟)。
  • 不推荐在正式脚本中大量使用,会导致脚本执行效率低下,且难以适配不同环境的速度差异。

2.隐式等待(implicit)

代码示例:

# python
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(10)   # 设置全局隐式等待10秒(对所有元素查找生效)

适用场景:

  • 适用于整个周期内元素的查找,设置一次全局生效
  • 适合页面加载节奏相对稳定的场景,简化脚本(无需为每个元素都设置等待)
  • 缺点:等待的条件是“元素存在”,并非“元素可交互”,如果元素不可交互则可能报错

3.显示等待(explicit)

代码示例:

# python
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import excepted_conditions as EC
from selenium.webdriver.common.By import by

driver = webdriver.Chrome()
element = WebDriverWait(driver, 10).util(
  EC.elemnet_to_be_clickable((By.ID, 'submit_btn')) # 显示等待十秒,直到元素可点击
)

适用场景:

  • 针对特定元素特定状态(如可点击,可见,文本出现等)设置等待,精确度高
  • 适合动态加载的元素(如AJAX请求后出现的弹窗)或者需要等待特定条件满足的场景(如进度条加载完成)
  • 实际项目主要推荐方式,兼顾稳定性和效率性

总结

  • 强制等待:简单粗暴,适合临时调试,不适合正式脚本,效率低下
  • 隐式等待:全局生效,简化脚本,适合元素加载稳定的场景
  • 显示等待:精准控制,适配动态场景,企业实战自动化的首选
posted @ 2025-08-14 10:05  胡啊花瓜  阅读(19)  评论(0)    收藏  举报