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

如何用Selenium的WebDriverWait等待元素列表中第2个目标元素出现

解决方法

要等待元素列表中的第2个元素出现,不能直接用presence_of_element_located(它只会等待第一个匹配元素加载),需要自定义等待条件,确保匹配的元素列表长度至少为2,再选取目标元素。

重要提示:

Python列表是0索引的,你示例里的[2]实际取的是第3个元素,如果要获取第2个元素,应该用索引[1]。

修改后的代码:

# 等待列表中至少有2个匹配元素,然后取第2个(索引1)
target_element = WebDriverWait(driver, 60).until(
    lambda driver: len(driver.find_elements(By.CLASS_NAME, 'container bg-black-100')) >= 2
)[1]

代码说明:

  • 用lambda表达式作为等待条件,每次检查时调用find_elements获取元素列表,判断其长度是否≥2
  • 当条件满足时,until方法会返回这个元素列表,之后通过索引[1]取出第2个元素
  • 如果你的需求确实是取第3个元素,把索引改成[2]即可

内容的提问来源于stack exchange,提问作者Abdul Hossein Charkhi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:37:06