目标是在事件发生前使用 Selenium 更改 HTML 视频播放速率click
。有几个线程讨论了该请求,例如OP1,并且有两个建议;
Jeremy Visser在OP1中建议直接更改属性,如下
document.querySelector('video').defaultPlaybackRate = 2.0;
var vid = document.getElementById("video1");
function fastPlaySpeed() {
vid.playbackRate = 2;}
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
在这种特殊情况下使用它,我将不胜感激。
预先感谢您抽出宝贵时间接受此请求。
牧羊人nacy
相关分类