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

如何用Selenium和Python获取SVG的tooltip文本或悬停提示文本

如何用Selenium+Python获取SVG标签的tooltip文本

针对你遇到的Jenkins状态图标tooltip获取问题,分两种场景给出解决方案:

1. 直接获取SVG的tooltip属性值

从你提供的HTML代码来看,SVG标签本身带有tooltip="Failed"属性,这种情况不需要鼠标悬停,直接定位到SVG元素后读取属性即可:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器
browser = webdriver.Chrome()
browser.get("你的Jenkins任务页面URL")

# 定位到包裹SVG的span下的SVG元素
svg_icon = browser.find_element(By.CSS_SELECTOR, "span.build-status-icon__outer svg")
# 获取tooltip属性值
status_text = svg_icon.get_attribute("tooltip")
print(status_text)  # 输出:Failed

browser.quit()

2. 鼠标悬停后获取动态tooltip

如果tooltip是鼠标悬停后才动态生成的(比如依赖title属性或JS渲染的弹窗),可以用ActionChains模拟悬停操作,再获取对应文本:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

browser = webdriver.Chrome()
browser.get("你的Jenkins任务页面URL")

# 定位到状态图标所在的span元素
status_element = browser.find_element(By.XPATH, "//*[@id='main-panel']/h1/span[1]")
# 模拟鼠标悬停
ActionChains(browser).move_to_element(status_element).perform()

# 情况1:如果tooltip是通过title属性实现的,直接获取SVG的title属性
svg_icon = status_element.find_element(By.TAG_NAME, "svg")
tooltip_text = svg_icon.get_attribute("title")

# 情况2:如果是动态生成的tooltip弹窗,定位弹窗元素获取文本(示例,需根据实际DOM调整选择器)
# tooltip_popup = browser.find_element(By.CSS_SELECTOR, ".tooltip-content")
# tooltip_text = tooltip_popup.text

print(tooltip_text)
browser.quit()

注:根据你提供的HTML结构,第一种直接读取tooltip属性的方法最适用,无需额外悬停操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 23:27:18