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

如何使用WebDriverWait定位同class名的第5个按钮并点击?

解决方法

你的问题出在presence_of_element_located这个等待条件上——它只会返回第一个匹配到的元素,不是元素列表,所以直接加[5]会引发错误。要点击第5个同class的按钮,你需要改用能获取所有匹配元素的等待条件:

正确代码示例

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 等待所有class为com-ex-5的元素加载完成,返回元素列表
target_elements = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".com-ex-5"))
)
# 点击第5个元素(注意:列表索引从0开始,第5个对应索引4)
target_elements[4].click()

注意事项

  • 确认页面上确实存在至少5个该class的按钮,否则会触发IndexError索引越界错误。
  • 如果需要确保元素可见且可点击,可以把presence_of_all_elements_located替换为visibility_of_all_elements_located,避免点击未完全渲染的元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:50:28