如何使用 Python 中的 Selenium 中的 setPlaybackRate

目标是在事件发生前使用 Selenium 更改 HTML 视频播放速率click。有几个线程讨论了该请求,例如OP1,并且有两个建议;

Jeremy VisserOP1中建议直接更改属性,如下

document.querySelector('video').defaultPlaybackRate = 2.0;

而手上的Armel则建议如下面的代码片段所示

var vid = document.getElementById("video1");



function fastPlaySpeed() { 

    vid.playbackRate = 2;}

正如Greg所建议的, Armel的方法可以模拟如下,

from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC


chrome_options = webdriver.ChromeOptions()

browser = webdriver.Chrome(executable_path=r"\Browsers\chromedriver.exe",

                           options=chrome_options)



browser.get("https://www.youtube.com/watch?v=nXbfZL5kttM")


WebDriverWait(browser, 70).until(EC.element_to_be_clickable(

    (By.XPATH, "//button[@aria-label='Play']"))).click()


print('Complete play')


javascript_to_execute = 'document.getElementById("video1").playbackRate = 2'

webdriver.execute_script(javascript_to_execute))

然而,YouTube 似乎对ElementById不同的视频有不同的规定,因此使该js方法无法按预期工作。

显然 YouTube 有特定的功能:player.setPlaybackRate(suggestedRate:Number):Void做到这一点。此函数设置当前视频iFrame API的建议播放速率 。

但是,我对如何集成setPlaybackRate(suggestedRate:Number)到我的代码片段中没有足够的知识。如果有人能够阐明如何setPlaybackRate在这种特殊情况下使用它,我将不胜感激。

预先感谢您抽出宝贵时间接受此请求。





翻翻过去那场雪
浏览 83回答 1
1回答

牧羊人nacy

在 Web 驱动程序对象上调用execute_script:javascript_to_execute = 'document.getElementById("video1").playbackRate = 2'webdriver.execute_script(javascript_to_execute))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5