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

Selenium如何提取含嵌套文本的首个<a href>链接URL至变量

解决Selenium中嵌套SVG文本的元素URL提取问题

Selenium的link text/partial link text定位方式只能识别<a>标签直接包含的文本节点,无法识别其子元素(比如嵌套的<svg>)里的文本,因此需要用XPath穿透子元素来定位目标元素。

方法1:通过SVG内的文本定位父级元素

使用XPath查询所有包含指定文本SVG的<a>元素,再提取第一个元素的href属性:

Python代码示例

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

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("目标页面URL")

# 定位第一个符合条件的<a>元素:匹配嵌套svg中包含指定文本的a标签
target_a = driver.find_element(By.XPATH, "//a[.//svg[contains(text(), 'Download .MP4, 720p')]]")
# 提取href属性值到变量
mp4_url = target_a.get_attribute("href")

# 后续可对mp4_url进行操作
print(mp4_url)

driver.quit()

方法2:处理SVG文本嵌套在标签的情况

如果页面里的SVG文本实际放在<text>子标签内,需要调整XPath路径:

target_a = driver.find_element(By.XPATH, "//a[.//svg//text[contains(text(), 'Download .MP4, 720p')]]")
mp4_url = target_a.get_attribute("href")

额外优化:处理文本中的多余空格/换行

如果SVG内的文本存在多余空格或换行,可使用normalize-space()标准化文本后匹配:

//a[.//svg[contains(normalize-space(text()), 'Download .MP4, 720p')]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:42:06