首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用selenium在chrome webdriver中静音

如何使用selenium在chrome webdriver中静音
EN

Stack Overflow用户
提问于 2016-09-08 21:36:41
回答 3查看 13.4K关注 0票数 25

我想写一个脚本,其中我使用selenium包,如下所示:

代码语言:javascript
复制
from selenium import webdriver

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

现在,在获得所需的URL后,我想将chrome声音静音。我怎么能这样做呢?如下所示:

代码语言:javascript
复制
driver.mute()

是否可以与其他Webdriver一起使用?就像火狐或者...?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-08 21:43:40

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

代码语言:javascript
复制
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")

或者,您可以使用mute the HTML5 video player directly

代码语言:javascript
复制
video = driver.find_element_by_css_selector("video")
driver.execute_script("arguments[0].muted = true;", video)

您可能需要在此之前添加一些延迟,以便视频在静音之前被初始化。time.sleep()不是最好的方法--更好的方法是订阅loadstart media event --可以在here中找到Python实现。

总结一下--完整的实现:

代码语言:javascript
复制
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)
票数 48
EN

Stack Overflow用户

发布于 2018-11-21 03:43:12

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

代码语言:javascript
复制
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("media.volume_scale", "0.0")
driver = webdriver.Firefox(firefox_profile=profile)
票数 11
EN

Stack Overflow用户

发布于 2020-12-23 05:34:33

使用javascript静音,如下所示

代码py

代码语言:javascript
复制
watch_video_js= """
           let video = document.querySelector('video')
           video.muted = true
           video.play()
      """
driver.execute_script(watch_video_js)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39392479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档