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

Selenium无法定位DOM节点,如何提取video标签的src链接?

解决方法

核心问题说明

你拿到了video元素但用.text获取内容是错误的——.text用于提取标签内的文本内容,而src是video标签的属性,需要用属性获取方法。另外页面源码里找不到链接,是因为这个video的src是JavaScript动态渲染生成的,初始源码里没有。

具体实现方案

方案1:直接获取元素的src属性

既然你已经通过driver.find_element(By.TAG_NAME, 'video')拿到了WebElement对象,直接调用get_attribute方法获取src:

video_element = driver.find_element(By.TAG_NAME, 'video')
video_src = video_element.get_attribute('src')
print(video_src)

方案2:等待元素加载(避免动态渲染导致的获取失败)

如果页面加载较慢,可能需要先等待video元素加载完成再获取:

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

# 等待最多10秒,直到video元素出现
wait = WebDriverWait(driver, 10)
video_element = wait.until(EC.presence_of_element_located((By.TAG_NAME, 'video')))
video_src = video_element.get_attribute('src')
print(video_src)

方案3:通过执行JavaScript获取(和控制台$0逻辑一致)

直接模拟控制台操作,执行JS获取当前DOM中的video元素src:

video_src = driver.execute_script("return document.querySelector('video').src;")
print(video_src)

补充说明

  • 控制台里的$0代表你最后选中的DOM节点,本质就是当前页面已经渲染完成的元素,所以用JS执行的方式可以直接拿到和控制台一致的结果。
  • 不要用page_source解析,因为它保存的是页面初始加载的HTML源码,动态生成的内容不会包含在内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:45:39