Solución:
No estoy seguro si puede, generalmente para cualquier página, hacerlo después de haber abierto la página, pero puede silenciar todo el sonido durante toda la duración de la sesión del navegador configurando el --mute-audio
conmutador:
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")
O puede silenciar el reproductor de video HTML5 directamente:
video = driver.find_element_by_css_selector("video")
driver.execute_script("arguments[0].muted = true;", video)
Es posible que deba agregar un retraso antes de eso para permitir que el video se inicialice antes de silenciarlo. time.sleep()
no sería la mejor manera de hacerlo; una mejor manera es suscribirse al loadstart
evento de medios: la implementación de Python se puede encontrar aquí.
Para resumir – implementación completa:
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)
Para aquellos que buscan una solución de Firefox, esto funcionó para mí. Espero que ayude a otros.
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("media.volume_scale", "0.0")
driver = webdriver.Firefox(firefox_profile=profile)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)