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

Python Selenium点击所有<li>元素遇拦截问题求助

解决方案

直接点击<li>元素不行,错误提示已经明确:实际能接收点击的是<li>内部的<img>元素——它挡住了父级<li>,导致点击被拦截。另外你之前的代码里,driver.find_elements()返回的是元素列表,不能直接调用click(),得逐个遍历处理。

按下面的逻辑修改代码:

  1. 先等待所有目标<li>元素加载完成,避免因页面未就绪找不到元素
  2. 遍历每个<li>,定位它内部的<img>元素
  3. 直接点击这个可交互的<img>

示例代码:

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

# 等待所有目标<li>加载完成(注意:你代码里用的类名是result-view,错误日志里是result-visualizar,以页面实际类名为准)
li_elements = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.CLASS_NAME, "result-visualizar"))
)

# 逐个点击每个<li>内部的<img>
for li in li_elements:
    img_btn = li.find_element(By.TAG_NAME, "img")
    img_btn.click()
    # 如果点击后页面有跳转/弹窗/加载,可添加对应等待逻辑,比如:
    # WebDriverWait(driver, 5).until(EC.staleness_of(li))

补充提醒:

  • 务必核对<li>的类名,确保和页面实际元素一致
  • 用显式等待WebDriverWait比直接调用find_elements更稳定,能避免页面未加载完成就执行操作的问题
  • 如果点击后有新窗口或弹窗,记得先切换窗口/处理弹窗,再继续遍历后续元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:21:22