为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Selenium 在 Edge 浏览器中启用媒体设备访问?

如何使用 Selenium 在 Edge 浏览器中启用媒体设备访问?

慕娘9325324 2022-06-28 16:12:14
我有一个 Selenium 测试,我想在 Edge 中针对使用网络摄像头和麦克风的页面运行。为了让这些媒体设备在浏览器中工作,用户必须允许站点访问设备。这是我制作的一个快速示例小提琴,它说明了 Edge 中的行为:https ://jsfiddle.net/12t3nofL/您应该注意到屏幕底部的弹出栏,我需要在我的自动化中自动允许它。这是我的代码(你可能需要pip install selenium==3.141.0先):from selenium import webdriverfrom selenium.webdriver.edge.options import Optionsoptions = Options()options.set_capability("dom.webnotifications.enabled", 1)options.set_capability("permissions.default.microphone", 1)options.set_capability("permissions.default.camera", 1)capabilities = options.to_capabilities()driver = webdriver.Edge(capabilities=capabilities)driver.get('https://jsfiddle.net/12t3nofL')而且每次底部都会弹出权限栏。我在 Selenium 3.141.0 和 Python 3.7.0 上(尽管在 2.7 中有同样的问题)。注意:由于其他原因,我将 Edge 设置为在退出时清除会话,因此不会保留 cookie 和缓存 - 试图模仿您使用自动 Chrome 获得的新配置文件。
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

我找到了一个效果很好的解决方案。我可以将站点添加到 Edge 的注册表中允许的媒体设备站点列表中,而不是尝试单击按钮以允许媒体设备。然后,我几乎可以立即访问需要媒体设备的网站,并且没有弹出窗口。


您想要的注册表路径是


HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\MediaCapture\AllowDomains

这在我测试的所有 Windows 10 机器上似乎都是一样的。


在那里,您想创建协议和 IP/FQDN 的 DWORD 键,例如http://10.0.0.2or https://example.com,当您允许域时 Edge 设置的值是3,所以我使用它。


在我的特殊情况下,我已切换到 IronPython,因此我可以轻松地挂接到 Windows API 调用。这是我的代码片段,用于完成这项工作。


from Microsoft.Win32 import Registry


def add_edge_media_domain(domain):

    path = "HKEY_CURRENT_USER\\SOFTWARE\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Storage\\microsoft.microsoftedge_8wekyb3d8bbwe\\MicrosoftEdge\\MediaCapture\\AllowDomains"

    Registry.SetValue(path, domain, 3)

在我打电话之前,我打电话driver.get(url)给add_edge_media_domain(trim_url(url))wheretrim_url只是切断 URL 的路径部分。


查看完整回答
反对 回复 2022-06-28
?
Qyouu

TA贡献1786条经验 获得超11个赞

我已经在我的机器上重现了这个问题,但我认为这是 Windows 的行为,我们无法使用 selenium 进行设置。

这篇文章中,我们可以看到:

如何在 Microsoft Edge 中浏览时允许网站使用你的摄像头或麦克风

你可以将摄像头和麦克风用于 Microsoft Edge 中的网站。但是,即使您的摄像头和麦克风已为 Microsoft Edge 启用,您仍需要授予各个网站权限,然后他们才能使用您的摄像头和麦克风。就是这样:

  1. 访问想要使用您的麦克风和/或摄像头的网站。

  2. 如果出现对话框询问您是否要授予网站使用相机或麦克风的权限,请选择允许一次或始终允许,或关闭对话框以阻止访问。

允许权限后,我们可以在管理权限(Edge browser setting => Advanced => Manage permissions )下找到这个权限,截图如下:

//img1.sycdn.imooc.com//62bab80f000172ed05660217.jpg

根据您的描述,当 Edge 浏览器退出时,您将清除会话、cookie 和缓存,如果您不想允许,每次权限,您可以取消选中网站权限选项(截图如下),权限提示只会在我们第一次访问页面时显示。

//img1.sycdn.imooc.com//62bab81b0001b77104040529.jpg


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 549 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号