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

使用Selenium Python点击两个同类下载按钮的问题

解决Selenium Python依次点击同类别名下载按钮的问题

你当前的代码使用find_element_by_xpath只会定位到第一个匹配的按钮,要实现依次点击两个按钮,需要改用复数形式的元素定位方法获取所有匹配的按钮,再循环遍历点击。

具体实现代码

# 导入所需模块(如果未提前导入)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 获取所有符合类名条件的下载按钮元素列表
download_buttons = driver.find_elements_by_xpath("//button[@class='MuiButtonBase-root MuiIconButton-root IconButton-sc-iv40hv-1 cLszZl IconButton-sc-iv40hv-0 hbJxSM DownloadButton-sc-19l7ggt-0 gHtfyl MuiIconButton-colorPrimary']")

# 遍历列表,依次点击每个按钮
for button in download_buttons:
    # 等待按钮处于可点击状态,规避页面动态加载导致的交互异常
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable(button))
    # 执行点击操作
    driver.execute_script("arguments[0].click();", button)
    # 点击后添加短暂等待,确保下载操作触发或页面状态更新
    time.sleep(2)

关键说明

  • 使用find_elements_by_xpath(复数形式)替代find_element_by_xpath,会返回页面上所有匹配该XPath的元素,而非仅第一个。
  • 等待逻辑是为了适配页面动态渲染,保证按钮在点击时处于可交互状态,避免抛出元素不可点击的异常。
  • 点击后的time.sleep可根据实际下载速度调整时长,确保每个下载操作有足够的触发时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:51:20