如何使用selenium将chrome webdriver中的所有声音静音

时间:2016-09-08 13:36:41

标签: python selenium

我想编写一个脚本,我在其中使用selenium包:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.youtube.com/watch?v=hdw1uKiTI5c")

现在在获得所需的网址后,我想将Chrome声音静音。 我怎么能这样做? 像这样的东西:

driver.mute()

是否可以使用任何其他Web驱动程序?像Firefox或......?

3 个答案:

答案 0 :(得分:27)

不确定您是否可以(通常是任何页面)在打开页面后执行此操作,但您可以通过设置--mute-audio切换器将整个浏览器会话期间的所有声音静音:

p1 <- ggplot(data, aes(x = time)) + scale_color_manual(values=c("orange","yellow","white","green"))
p1 <- p1 + add_lines1 + add_lines2

p2 <- ggplot(data, aes(x = time)) + scale_color_manual(values=c("orange","yellow","white","green"))
p2 <- p2 + add_lines1 + add_lines3 + add_lines4

或者,你可以mute the HTML5 video player directly

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")

您可能需要在此之前添加一些延迟,以便在静音之前初始化视频。 video = driver.find_element_by_css_selector("video") driver.execute_script("arguments[0].muted = true;", video) 不是最好的方法 - 更好的方法是订阅loadstart media event - 可以找到Python实现here

总结 - 完整实施:

time.sleep()

答案 1 :(得分:3)

对于那些正在寻找firefox解决方案的人来说,这对我很有用。希望对其他人有帮助。

from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("media.volume_scale", "0.0")
driver = webdriver.Firefox(firefox_profile=profile)

答案 2 :(得分:1)

使用 javascript 来静音这样的声音

代码py

watch_video_js= """
           let video = document.querySelector('video')
           video.muted = true
           video.play()
      """
driver.execute_script(watch_video_js)