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

如何用Python Selenium提取网页元素鼠标悬停文本?

解决Selenium提取悬停提示文本的问题

针对你在https://idsc.cidadessustentaveis.org.br/rankings网站提取条形图悬停文本的需求,以下是可行的解决方案:

1. 优先检查元素的title属性

很多图表组件会把悬停提示直接存放在元素的title属性中,无需模拟悬停即可获取:

from selenium.webdriver.common.by import By

# 替换为你定位条形图的选择器
bar_element = driver.find_element(By.CSS_SELECTOR, "此处填条形图元素的CSS选择器")
tooltip_text = bar_element.get_attribute('title')
print(tooltip_text)

2. 处理动态生成的Tooltip元素

如果悬停提示是动态加载的独立元素(比如悬停后才显示的div),需要先模拟悬停,再等待元素出现后提取文本:

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

# 定位目标条形图
bar_element = driver.find_element(By.CSS_SELECTOR, "此处填条形图元素的CSS选择器")

# 模拟鼠标悬停
actions = ActionChains(driver)
actions.move_to_element(bar_element).perform()

# 等待Tooltip元素可见并获取文本
# 替换为实际的Tooltip选择器(可通过浏览器开发者工具查看)
tooltip = WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, ".tooltip-class"))
)
print(tooltip.text)

3. 提取SVG图表中的<title>标签内容

如果目标是SVG绘制的条形图,悬停文本通常存放在SVG内部的<title>标签中,直接定位该标签即可:

# 替换为SVG条形图的选择器,再定位内部的title标签
title_element = driver.find_element(By.CSS_SELECTOR, "svg-bar-selector title")
print(title_element.text)

关键说明

你之前用elem.text或悬停后仍拿不到文本,大概率是因为:

  • 悬停文本不在目标元素的文本节点中,而是存储在属性、动态生成的独立元素或SVG的<title>标签里
  • 未等待动态Tooltip加载完成就尝试提取文本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:46:27