当前位置: 首页 > 知识库问答 >
问题:

使用selenium获取当前视频标记URL

黄磊
2023-03-14
from selenium import webdriver


driver = webdriver.Chrome()
driver.get('https://www.youtube.com/watch?v=9x6YclsLHN0')

video = driver.find_element_by_tag_name('video')
url = driver.execute_script("return arguments[0].currentSrc;", video)
print url

driver.quit()
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 5)
video = wait.until(EC.visibility_of_element_located((By.TAG_NAME, 'video')))

我也非常肯定currentsrc应该可以工作,因为如果我在控制台中执行代码并手动等待视频开始,我会看到它正在打印videecurrentsrc属性值。

仅供参考,也尝试了java绑定,结果相同,一个空字符串:

WebDriver driver = new ChromeDriver();
driver.get("https://www.youtube.com/watch?v=9x6YclsLHN0");

WebElement video = driver.findElement(By.tagName("video"));

JavascriptExecutor js = (JavascriptExecutor) driver;
String url = (String) js.executeScript("return arguments[0].currentSrc;", video);

System.out.println(url);

共有1个答案

葛承嗣
2023-03-14

根据W3视频标签规范:

currentSrc DOM属性最初是空字符串。其值由资源选择算法更改。

它解释了问题中描述的行为。这也意味着要可靠地获取currentsrc值,我们需要等到定义了媒体资源。

driver.set_script_timeout(10) 

url = driver.execute_async_script("""
    var video = arguments[0],
        callback = arguments[arguments.length - 1];

    video.addEventListener('loadstart', listener);

    function listener() {
        callback(video.currentSrc);
    };
""", video)
print(url)
 类似资料:
  • 我正在开发一个Android视频应用程序,我需要在暂停模式下获取当前显示的视频帧号。 我需要向我的服务器发送当前在视频中暂停的帧号,并返回关于该帧/时间的项目列表,现在我正在以毫秒为单位发送当前暂停的时间,但它不能很好地工作,因为服务器比较发送到它计算出具体的帧,基于时间,但有时比较并不精确。 我知道如果你使用MediaMetaDataRetriever,你可以从那个帧中得到一个位图,我做到了,但

  • 问题内容: 我正在尝试获取当前打开页面的URL。我正在使用Selenium WebDriver和Java。 我正在通过以下方式访问当前URL: 但是,该URL似乎并未真正反映我当前所在的位置。 我当前的测试用例涉及到NYT网站,然后单击“技术”链接。但是,无论地址栏中显示的URL如何,始终显示为。 我如何实际访问地址栏中的URL值,以便知道实际在哪个页面上? 问题答案: 睡吧 它会工作。我努力了。

  • 我正在尝试获取当前打开页面的URL。我正在使用Selenium WebDriver和Java。 我正在通过以下方式访问当前URL: 然而,URL似乎并没有实际反映我当前的位置。 我如何实际访问地址栏中的URL值,这样我就可以知道我实际在哪个页面上了?

  • 我使用selenium获取网页,并发送kenword获取新页面。但是我怎样才能获得新的网页,并搜索我需要的信息呢 请原谅我没有使用降价。我的问题是:我想在搜索关键词后获得网页,但我编写了浏览器。page_源码,它是百度的主页

  • 问题内容: 我正在使用jQuery。如何获取当前URL的路径并将其分配给变量? 范例网址: 问题答案: 要获取路径,可以使用:

  • 问题内容: 我想要的只是获取网站URL。不是从链接获取的URL。在页面加载过程中,我需要能够获取网站的完整,当前URL,并将其设置为一个变量,以便我随意使用。 问题答案: 使用: 如评论中所述,下面的行有效,但对于Firefox而言是错误的。