当前位置: 首页 > 面试题库 >

如何使用selenium使Chrome WebDriver中的所有声音静音

欧阳安阳
2023-03-14
问题内容

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

from selenium import webdriver

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

现在,在获得所需的URL之后,我想使镶边声音静音。我该怎么办?像这样的东西:

driver.mute()

其他任何Webdriver都有可能吗?像Firefox或…?


问题答案:

不确定是否可以在打开页面后(通常在任何页面上都可以这样做),但是可以通过设置--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")

或者,您可以直接将HTML5视频播放器静音:

video = driver.find_element_by_css_selector("video")
driver.execute_script("arguments[0].muted = true;", video)

您可能需要先添加一些延迟,然后才能将视频初始化为静音。time.sleep()这样做不是最好的方法-
更好的方法是订阅loadstart媒体事件-可以在此处找到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)


 类似资料:
  • 问题内容: 如何使用JS静音页面上的所有声音? 这应该使HTML5 和标记以及Flash和好友无效。 问题答案: 规则1:切勿在页面加载后启用音频自动播放。 无论如何,我将使用jQuery显示HTML5: Flash Media Player取决于暴露给JavaScript的自定义API(希望)。 但是您就知道了,遍历媒体,检查/存储播放状态以及静音/取消静音。

  • 问题内容: 我想用Swift播放声音。 我的代码在Swift 1.0中可用,但现在在Swift 2或更高版本中不再起作用。 问题答案: 最可取的是,您可能想使用 AVFoundation。它提供了使用视听媒体的所有必要条件。 更新: 某些评论中建议与 Swift 2 , Swift 3 和 Swift 4 兼容。 斯威夫特2.3 迅捷3 Swift 4(与iOS 13兼容) 确保更改乐曲的名称以及

  • 获取“所有”AVSpeechSynthesisVoice对象列表的标准方法是请求: 但是,这仅显示每个语言区域对的唯一默认语音。e、 g.对于美国: 如果我看在设置应用程序下的一般→辅助功能→语音→语音→英语我看到我有'Siri女性(增强)'选择,但该语音是不可选的代码。完整的名单是 所以最大的问题是:如何从代码中选择Alex或Siri女性作为语音?

  • 我们的项目使用WebRTC进行VOIP呼叫,并且在访问CallKit框架之前运行良好。但是当我试图访问CallKit框架时,出现了双方都听不到对方讲话的情况。当我删除CallKit时,一切恢复正常。 CallKit的应答按钮与项目中的原始应答按钮功能相同。 令我惊讶的是,没有必要听到任何声音。有时一切正常,但有时会有问题。嗯,出现问题的可能性更大。 此外,我很好奇套接字不稳定是否会导致CallKi

  • 如何在按钮点击时发出随机的声音? 我对编程世界很陌生,我以前检查过上面的链接,试图用它作为播放随机声音的参考。我使用SoundPool因为我知道它比MediaPlayer更擅长播放短片段。我总共有四个声音。

  • 问题内容: 我有一段代码会生成很多警告(不推荐使用的API) 使用clang *我可以做 但是,这并不迅速。 如何迅速进行? 注意:我不想全局禁用警告,甚至不想禁用整个文件,而只是在源代码的特定部分禁用特定警告。 编辑:我看起来我的笔记不够清楚:我不希望条件编译(这是假定重复的建议答案)。我只想在不使用新API的情况下使警告静音。 问题答案: 截至2019年,Xcode 11.0一直没有办法实现这