【问题标题】:How can I play a youtube video [selenium]如何播放 youtube 视频 [selenium]
【发布时间】:2020-12-25 21:47:52
【问题描述】:

我想在我的 python 脚本中播放/暂停 YouTube 视频,但 driver.find_element_by_name("body").send_keys('keys.SPACE') 不工作

由于它不起作用,我使用 pyautogui.press("space") 代替,但我必须在页面中。使用 selenium 方法是否可以在不关注 YouTube 的情况下发送关键信号?

【问题讨论】:

  • 空格是“大部分时间都有效”的关键。官方的键盘快捷键是“k”。
  • 它输出错误“消息:无法找到元素:[name="body"]”

标签: python html selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

您可以尝试查找视频并使用 .send_keys('keys.SPACE').click() 方法,即使您没有确切的窗口焦点也可以执行这些方法

这是我的代码。我找到了 id movie_player 的视频。代码打开页面,等待 10 秒,播放视频并在一秒后停止。希望对你有帮助

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome('/Users/Max/Desktop/Code/Selenium/chromedriver')
driver.get('https://www.youtube.com/watch?v=DXUAyRRkI6k')
# wait for the page to load everything (works without it)
for i in range(10):
    print(i)
    time.sleep(1)
video = driver.find_element_by_id('movie_player')
video.send_keys(Keys.SPACE) #hits space
time.sleep(1)
video.click()               #mouse click

【讨论】:

  • 它输出这个错误 "selenium.common.exceptions.ElementClickInterceptedException: Message: Element
    在点 (464,320) 是不可点击的,因为另一个元素
  • 陷阱,网页 = driver.find_element_by_tag_name("body"); pages.send_keys("K") 也可以
猜你喜欢
相关资源
最近更新 更多
热门标签