为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Python 中的 Selenium 中的 setPlaybackRate

如何使用 Python 中的 Selenium 中的 setPlaybackRate

翻翻过去那场雪 2024-01-11 16:09:49
目标是在事件发生前使用 Selenium 更改 HTML 视频播放速率click。有几个线程讨论了该请求,例如OP1,并且有两个建议;Jeremy Visser在OP1中建议直接更改属性,如下document.querySelector('video').defaultPlaybackRate = 2.0;而手上的Armel则建议如下面的代码片段所示var vid = document.getElementById("video1");function fastPlaySpeed() {     vid.playbackRate = 2;}正如Greg所建议的, Armel的方法可以模拟如下,from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECchrome_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在这种特殊情况下使用它,我将不胜感激。预先感谢您抽出宝贵时间接受此请求。
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

在 Web 驱动程序对象上调用execute_script:


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

webdriver.execute_script(javascript_to_execute))


查看完整回答
反对 回复 2024-01-11
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信