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

Python Selenium:如何正确循环点击列表中的每个WebElement

问题原因

你的循环逻辑错误在于:

  • 每次循环都用find_element()(单数方法)重新获取元素,这个方法只会返回页面中匹配选择器的第一个元素,所以循环n次就会重复点击第一个元素。
  • 循环里完全覆盖了menu列表中的原有元素,等于白遍历了之前获取的menu列表。
修复方案

根据你的需求,分两种场景处理:

场景1:menu列表中的元素就是需要点击的目标

直接遍历menu列表,对每个元素执行点击:

menu = self.driver.find_elements(By.CSS_SELECTOR, '[class="partEl__1o8vO"]')
for item in menu:
    item.click()

场景2:menu元素和需要点击的TableRow_clickableRow__1uMJO元素是关联关系(比如子元素、兄弟元素)

如果需要点击的元素是menu元素的子元素/兄弟元素,不要全局查找,而是通过当前menu元素定位,避免重复获取第一个元素:

menu = self.driver.find_elements(By.CSS_SELECTOR, '[class="partEl__1o8vO"]')
for item in menu:
    # 以子元素为例,根据实际DOM结构调整选择器
    target = item.find_element(By.CSS_SELECTOR, '.TableRow_clickableRow__1uMJO')
    target.click()

注意事项

  • 点击后如果页面发生刷新/元素重新渲染,原menu列表中的元素会失效,需要重新获取列表或者使用显式等待确保元素可交互。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:55:20