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

如何在Selenium Python中定位相同class不同ID的元素并依次点击

解决方案

浏览器控制台原生JS实现(直接在F12开发者工具的控制台运行即可)

用组合类选择器精准匹配所有目标按钮,遍历点击时增加间隔避免触发反爬,同时会打印点击的按钮序号和对应任务ID方便核对:

// 匹配所有符合class要求的a标签元素
const taskBtns = document.querySelectorAll('a.do.do-task.btn.btn-sm.btn-primary.btn-block');
// 依次点击,默认间隔1秒,可自行修改setTimeout的第二个参数调整间隔时长
taskBtns.forEach((btn, idx) => {
  setTimeout(() => {
    btn.click();
    console.log(`已点击第${idx + 1}个按钮,对应任务ID:${btn.dataset.taskId}`);
  }, idx * 1000);
})

Python Selenium 自动化脚本实现

适合批量自动化操作场景:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
# 此处省略访问目标页面的代码
# 定位所有目标按钮
task_btns = driver.find_elements(By.CSS_SELECTOR, 'a.do.do-task.btn.btn-sm.btn-primary.btn-block')
for idx, btn in enumerate(task_btns):
    btn.click()
    print(f"已点击第{idx+1}个按钮,对应任务ID:{btn.get_attribute('data-task-id')}")
    time.sleep(1) # 点击间隔可自行调整

注意事项

  • 如果点击操作会触发页面刷新或跳转,不要复用第一次获取的元素列表,每次页面加载完成后需要重新获取元素再操作,否则会报元素失效错误
  • 如果元素是动态加载渲染的,需要增加等待逻辑,等所有目标元素都加载完成后再执行定位操作
  • 点击间隔不要设置过短,避免触发站点反爬机制导致操作失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:45:10