我想写一个脚本,其中我使用selenium包,如下所示:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.youtube.com/watch?v=hdw1uKiTI5c")现在,在获得所需的URL后,我想将chrome声音静音。我怎么能这样做呢?如下所示:
driver.mute()是否可以与其他Webdriver一起使用?就像火狐或者...?
发布于 2016-09-08 21:43:40
不确定您是否可以在打开页面后对任何页面执行此操作,但您可以通过设置--mute-audio切换器,在整个浏览器会话期间将所有声音静音:
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
video = driver.find_element_by_css_selector("video")
driver.execute_script("arguments[0].muted = true;", video)您可能需要在此之前添加一些延迟,以便视频在静音之前被初始化。time.sleep()不是最好的方法--更好的方法是订阅loadstart media event --可以在here中找到Python实现。
总结一下--完整的实现:
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)发布于 2018-11-21 03:43:12
对于那些正在寻找firefox解决方案的人来说,这对我很有效。我希望它能帮助其他人。
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("media.volume_scale", "0.0")
driver = webdriver.Firefox(firefox_profile=profile)发布于 2020-12-23 05:34:33
使用javascript静音,如下所示
代码py
watch_video_js= """
let video = document.querySelector('video')
video.muted = true
video.play()
"""
driver.execute_script(watch_video_js)https://stackoverflow.com/questions/39392479
复制相似问题