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

Python Selenium操作网页下拉菜单提示元素不可见如何解决

Selenium 操作方案

前置依赖导入

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
import time

完整实现代码

# 初始化浏览器驱动,这里以Chrome为例,可替换为你使用的浏览器驱动
driver = webdriver.Chrome()
# 全局隐式等待设置
driver.implicitly_wait(10)
# 打开目标页面
driver.get("https://understat.com/team/Aston_Villa/2021")
# 显式等待对象,最长等待10秒
wait = WebDriverWait(driver, 10)

# 步骤A:点击自定义下拉框触发按钮
dropdown_trigger = wait.until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, 'div[name="team-players-n-last-matches"]'))
)
dropdown_trigger.click()

# 步骤B:选中「5 games」选项
five_games_option = wait.until(
    EC.element_to_be_clickable((By.XPATH, '//span[text()="5 games"]/parent::div[contains(@class, "item")]'))
)
five_games_option.click()

# 步骤C:点击过滤按钮提交筛选
filter_btn = wait.until(
    EC.element_to_be_clickable((By.XPATH, '//button[.//i[contains(@class, "fa-filter")]]'))
)
filter_btn.click()

# 等待筛选后的数据加载完成
time.sleep(2)

# 后续可直接解析页面提取球员数据

注意事项

  • 该站点的下拉选择器是自定义前端组件渲染的,原生select标签被设置为不可见状态,直接操作Select类或者原生select下的option标签都会触发不可交互错误,必须操作自定义的下拉触发元素和选项元素
  • 所有操作前添加显式等待,避免页面未渲染完成就执行操作导致的报错
  • 如果运行时出现元素定位失败,可以适当调大等待时长,或者根据本地页面渲染结构微调选择器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:05