python 在 selenium 如何暂停嵌入在i帧的YouTube视频?

5jvtdoz2  于 2023-01-12  发布在  Python
关注(0)|答案(2)|浏览(183)

我正在尝试播放视频,然后暂停,元素位于iframe内,我可以播放视频,我如何暂停相同的内容,我正在使用按钮操作播放,但一旦视频正在播放,这将不可用

driver.get('https://demo.guru99.com/test/guru99home/')
frame1 = driver.find_element(By.XPATH,"//iframe[@src='https://www.youtube.com/embed/RbSlW8jZFe8']")
driver.switch_to.frame(frame1)

sleep(2)
Ytbutton = driver.find_element(
    By.XPATH, "//button[@class='ytp-large-play-button ytp-button ytp-large-play-button-red-bg']")
Ytbutton.click() #play
sleep(2)
# for pause ?
ryhaxcpt

ryhaxcpt1#

这是因为按下播放按钮后,该按钮将被隐藏。
不修改隐藏元素的最简单方法是简单地利用ActionChain来调用空格键send_keys(' ')或k send_keys('k')命令,这是Youtube播放器暂停和取消暂停视频的快捷方式。
类似于以下内容:

from selenium.webdriver import ActionChains

driver.get('https://demo.guru99.com/test/guru99home/')
frame1 = driver.find_element(By.XPATH,"//iframe[@src='https://www.youtube.com/embed/RbSlW8jZFe8']")
driver.switch_to.frame(frame1)

sleep(2)
Ytbutton = driver.find_element(
    By.XPATH, "//button[@class='ytp-large-play-button ytp-button ytp-large-play-button-red-bg']")
Ytbutton.click() #play
sleep(2)
ActionChains(driver).send_keys('k').perform() #pause
csga3l58

csga3l582#

如果你在iframe下面挖掘一下,你会发现另一个可修改的按钮:

pause_button = driver.find_element(
    By.XPATH, "//button[@class='ytp-play-button ytp-button']")
pause_button.click()

它,在视频的最后,变成了一个“重复”。它在<div class="ytp-left-controls">块中。

相关问题