在 Selenium 自动化测试中,处理异常是确保脚本稳定性的关键。以下是常见的异常类型、原因解析及解决方法,结合代码示例说明:
一、元素操作相关异常
1. NoSuchElementException
原因:元素未找到(未加载完成、错误定位器、动态元素/iframe未切换)。
解决方案:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 显式等待元素出现
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "dynamic-element"))
)
2. ElementNotInteractableException
原因:元素存在但不可交互(如被遮挡、不可见、disabled 状态)。
解决方案:
# 等待元素可点击状态
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//button[@class="submit"]')