gpt4 book ai didi

python - 使用 Selenium/WebDriver 和 Python,如何抑制共享摄像头和麦克风的提示?

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:02 25 4
gpt4 key购买 nike

我在 Python 中使用 Selenium 来自动化远程浏览器。浏览器需要访问其网络摄像头和麦克风。当我导航到请求访问的页面时,Firefox 会显示一个弹出窗口,询问“您是否愿意与 [host] 共享您的摄像头和麦克风?”

此窗口不是浏览器页面的一部分,因此无法通过 Selenium 检测或控制它。

此行为由 Firefox 的“about:config”页面中的 media.navigator.permission.disabled 选项控制。如果此选项设置为“true”,则应自动授予对相机的访问权限。

当我将该选项设置为“true”时,它只会在我手动运行 Firefox 时消除提示。当我通过 Selenium 运行 Firefox 时,我仍然会收到提示。

如何取消此提示并自动授予权限?

最佳答案

问题出在 Firefox 配置文件中。 Selenium 为每个浏览器实例创建一个新的临时配置文件。此配置文件与您手动启动 Firefox 时使用的配置文件不同。

因此,当您在 about:config 中将 media.navigator.permission.disabled 设置为“true”时,您这样做只是为了您的配置文件,而不是 Selenium 使用的配置文件。

有两种方法可以解决这个问题:

  1. 告诉 Selenium 使用哪个现有配置文件。

    为此,您必须首先确定您使用的是哪个配置文件。为此,关闭所有 Firefox 实例,然后执行 firefox -p启动配置文件管理器。在大多数情况下,您会看到一个名为 default 的个人资料。 .

    使用此配置文件,导航到 about:config , 并设置 media.navigator.permission.disabled true 的选项.

    然后,当您启动 Selenium 独立服务器时,指定此配置文件:

    java -jar selenium-server-standalone-2.37.0.jar -Dwebdriver.firefox.profile=default

    这告诉 Selenium 使用 default配置文件,其中包含您想要的设置。

  2. 创建并配置一个新的配置文件供 Selenium 使用。

    在创建浏览器实例之前,您必须创建一个 Firefox 配置文件并对其进行配置以满足您的需要:

    profile = webdriver.FirefoxProfile()
    profile.set_preference ('media.navigator.permission.disabled', True)
    profile.update_preferences()

    然后在创建远程浏览器实例时指定此配置文件:

    firefox = selenium.webdriver.remote.webdriver.WebDriver (command_executor=my_url, desired_capabilities=DesiredCapabilities.FIREFOX, browser_profile=profile)

    Selenium 随后将使用此配置文件,并且系统不会提示您获得访问相机的权限。

    请注意,此方法比第一种方法花费更多时间。

关于python - 使用 Selenium/WebDriver 和 Python,如何抑制共享摄像头和麦克风的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com