【发布时间】:2022-01-27 17:30:47
【问题描述】:
我正在使用 Selenium 编写 Python 脚本来搜索和播放 YouTube 视频。
这是我的代码:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Defining video name
video_name = "4k art"
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.maximize_window()
wait = WebDriverWait(driver, 3)
presence = EC.presence_of_element_located
visible = EC.visibility_of_element_located
# Navigate to url with video being appended to search_query
driver.get('https://www.youtube.com/results?search_query={}'.format(str(video_name)))
# play the video
wait.until(visible((By.ID, "video-title")))
driver.find_element(By.ID, "video-title").click()
# Wait for video to end
所以,一切正常,但我想知道让脚本等到视频完成后再完成的最佳方法是什么?我看到了使用 YouTube API 或使用 Selenium 出现元素的不同方法。有没有首选的方法?
-
ytp-time-duration 或重播按钮[@aria-label="Replay"]