你可以使用Selenium的WebDriverWait和expected_conditions来等待直到元素变得可点击。
try:
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "你的元素ID"))
)
print("元素可点击")
except TimeoutException:
print("在10秒内未找到可点击的元素")
检查元素是否可点击
虽然Selenium没有直接提供一个名为is_clickable()的方法来判断一个元素是否可点击,但我们可以通过组合is_displayed()和is_enabled()方法来实现这一功能。如果一个元素是可见且启用的,通常它也是可点击的。
element = driver.find_element_by_id("你的元素ID")
if element.is_displayed() and element.is_enabled():
print("元素可点击")
else:
print("元素不可点击")
disabled
23:02 2025/12/10
python selenium 等待地址栏改变
url_to_be(url)是一个关键方法,它检查当前页面的URL是否等于预期值
WebDriverWait(driver, timeout).until(EC.url_to_be("https://www.example.com"))
url_contains(url)?:等待URL包含指定字符串
WebDriverWait(driver, 10).until(EC.url_contains("baidu"))
url_matches(pattern)?:等待URL匹配正则表达式模式
WebDriverWait(driver, 10).until(EC.url_matches(r"https://.*\.baidu\.com/.*"))
lambda匿名函数 :等待URL与之前不同(需记录初始URL)
initial_url = driver.current_url
WebDriverWait(driver, 10).until(lambda driver: driver.current_url != initial_url)
使用WebDriverWait等待直到URL改变
wait = WebDriverWait(driver, 10) # 等待最多10秒
wait.until(EC.url_changes(driver.current_url)) # 期望URL与当前URL不同