Không chắc chắn nếu bạn có thể, thường cho bất kỳ trang nào, làm điều đó sau khi bạn đã mở trang, nhưng bạn có thể tắt tất cả âm thanh cho toàn bộ thời gian của phiên trình duyệt bằng cách thiết lập --mute-audio
switcher:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--mute-audio")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("https://www.youtube.com/watch?v=hdw1uKiTI5c")
Hoặc, bạn có thể mute the HTML5 video player directly:
video = driver.find_element_by_css_selector("video")
driver.execute_script("arguments[0].muted = true;", video)
bạn có thể cần phải thêm một số chậm trễ trước đó để cho video được khởi tạo trước khi tắt tiếng nó. time.sleep()
sẽ không phải là cách tốt nhất để làm điều đó - cách tốt hơn là đăng ký loadstart
media event - việc triển khai Python có thể được tìm thấy here.
Để tóm tắt - hoàn thành triển khai:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome()
driver.set_script_timeout(10)
driver.get("https://www.youtube.com/watch?v=hdw1uKiTI5c")
# wait for video tag to show up
wait = WebDriverWait(driver, 5)
video = wait.until(EC.visibility_of_element_located((By.TAG_NAME, 'video')))
# wait for video to be initialized
driver.execute_async_script("""
var video = arguments[0],
callback = arguments[arguments.length - 1];
video.addEventListener('loadstart', listener);
function listener() {
callback();
};
""", video)
# mute the video
driver.execute_script("arguments[0].muted = true;", video)