You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Selenium的WebDriverWait中实现if-else逻辑

Python Selenium:WebDriverWait超时后不终止程序的处理方案

直接通过捕获TimeoutException异常来实现你要的分支逻辑即可,WebDriverWait等待超时后会抛出该异常,用try-except块包裹等待代码,就能分别处理元素加载成功和超时的场景,不会终止程序。

完整代码示例

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 必须导入超时异常类
from selenium.common.exceptions import TimeoutException

element = None
try:
    # 等待10秒,直到目标元素出现
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "#freightCalculatorForm > div > fieldset.col-xs-12.col-lg-6.col-md-6.text-center > div.freightCalcResult > div > p:nth-child(2)"))
    )
    # 元素加载成功后的操作
    print("运费估算元素已加载完成")
    # 可在此对element执行后续操作,比如获取文本
    # freight_info = element.text
except TimeoutException:
    # 超时后的自定义操作
    print("运费估算元素加载超时,执行替代逻辑")
    # 这里编写你需要的其他操作,比如跳过当前步骤、刷新页面等

# 程序会继续执行后续代码
print("流程继续推进...")

关键说明

  • try块包裹等待逻辑,成功获取元素后执行正常业务流程
  • except TimeoutException专门捕获超时异常,在块内处理超时场景
  • 需提前导入TimeoutException类,否则会触发未定义异常错误
  • 提前初始化element为None,方便后续判断元素是否加载成功

内容的提问来源于stack exchange,提问作者mercurio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:40:26