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

Flashscore网站Tooltip元素定位及下一场赛事信息提取技术求助

解决Flashscore赛事Tooltip提取问题

你的代码存在两个核心问题导致无法定位Tooltip:

  1. 硬编码选择器过于脆弱:使用nth-child这类依赖DOM结构顺序的选择器,一旦网站更新布局就会失效,且无法适配动态加载的内容。
  2. 未触发Tooltip显示逻辑:Flashscore的Tooltip是鼠标悬停在触发元素上才会动态生成/显示的,初始状态下该元素可能不存在于DOM中或处于隐藏状态,直接用presence_of_element_located无法捕获。

修改后的代码实现

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

# 初始化配置
webdriver_path = "path_to_webdriver"
url = "https://www.flashscore.pl/pilka-nozna/hiszpania/laliga"

options = Options()
options.add_argument("start-maximized")

webdriver_service = Service(webdriver_path)
driver = webdriver.Chrome(options=options, service=webdriver_service)
driver.get(url)
wait = WebDriverWait(driver, 15)
actions = ActionChains(driver)

try:
    # 等待赛事表格加载完成,选择第一个带"TBD"状态的触发元素(下一场赛事标识)
    trigger_elem = wait.until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "div.tableCellFormIcon--TBD._trigger_14qf7_41"))
    )
    
    # 模拟鼠标悬停,触发Tooltip显示
    actions.move_to_element(trigger_elem).perform()
    
    # 等待Tooltip可见并获取元素
    tooltip_elem = wait.until(
        EC.visibility_of_element_located((By.CSS_SELECTOR, "div._tooltipContent_14qf7_62"))
    )
    
    # 提取Tooltip文本内容
    tooltip_text = tooltip_elem.text
    print("Tooltip内容:", tooltip_text)
    
finally:
    driver.quit()

关键优化点

  • 选择器优化:使用类名tableCellFormIcon--TBD和_tooltipContent_14qf7_62定位元素,比依赖DOM顺序的选择器更稳定。
  • 触发显示逻辑:通过ActionChains.move_to_element()模拟鼠标悬停,确保Tooltip被激活显示。
  • 等待条件调整:用visibility_of_element_located替代presence_of_element_located,确保元素不仅存在于DOM中,还处于可见状态。
  • 异常处理:添加try-finally块保证浏览器正常关闭,避免资源泄漏。

内容的提问来源于stack exchange,提问作者Mateusz Wójcik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:22:06