You need to enable JavaScript to run this app. Selenium Python 等待元素可点击及不可点击时执行其他逻辑的方法
优惠活动
大模型
产品
解决方案
定价
更多

Selenium Python 等待元素可点击及不可点击时执行其他逻辑的方法

你可以通过捕获 WebDriverWait 抛出的超时异常实现这个需求:element_to_be_clickable 本身就会校验元素处于可见且可点击的状态,等待超时后会抛出 TimeoutException,你只要在异常分支里写按钮不可用状态下要执行的代码即可。

完整代码示例:

from selenium.common.exceptions import TimeoutException

# 提前定义提交按钮的定位条件,方便复用
submit_btn_locator = (By.XPATH, "//button[@class='my-button my-button--size_large my-button--primary my-button--loader' and @type='submit']")

try:
    # 最多等待300秒,直到按钮变为可点击状态
    WebDriverWait(driver, 300).until(EC.element_to_be_clickable(submit_btn_locator))
    # 运行到此处说明按钮已经可点击,执行点击或后续提交逻辑
    driver.find_element(*submit_btn_locator).click()
except TimeoutException:
    # 等待超时,说明300秒内按钮始终不可点击,在此处编写你要执行的其他代码
    print("提交按钮长时间不可用,执行备用逻辑")
    # 此处写你的其他业务逻辑,比如刷新页面、取消操作等

补充说明:

  • 你可以根据实际业务需要调整 WebDriverWait 的第二个参数(等待时长,单位为秒),不需要等待300秒的话可以改成更短的数值,超时就会立刻触发备用逻辑
  • 如果需要循环轮询检测按钮状态,可以把整段逻辑放到循环结构中,满足终止条件再退出即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 12:15:01