在 Selenium 自动化测试中,合理的等待机制是确保脚本稳定性的关键。以下是对三种主要等待机制(显式等待、隐式等待、强制等待)的详细说明,配合实际代码示例和应用场景:
一、显式等待(Explicit Waits)
原理:针对特定条件(如元素存在、可点击等)动态等待,超时则抛出异常。
适用场景:需要精确控制等待条件的动态内容(如 AJAX 加载、元素延迟渲染)。
核心方法:
使用 WebDriverWait + expected_conditions(EC模块)。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 等待最多10秒,每隔0.5秒检测条件
wait = WebDriverWait(driver, timeout=10, poll_frequency=0.5)
# 等待元素可见
element = wait.until(EC.visibility_of_element_located((By.ID, "loader"))