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 的路径部分。

TA贡献1786条经验 获得超11个赞
我已经在我的机器上重现了这个问题,但我认为这是 Windows 的行为,我们无法使用 selenium 进行设置。
从这篇文章中,我们可以看到:
如何在 Microsoft Edge 中浏览时允许网站使用你的摄像头或麦克风
你可以将摄像头和麦克风用于 Microsoft Edge 中的网站。但是,即使您的摄像头和麦克风已为 Microsoft Edge 启用,您仍需要授予各个网站权限,然后他们才能使用您的摄像头和麦克风。就是这样:
访问想要使用您的麦克风和/或摄像头的网站。
如果出现对话框询问您是否要授予网站使用相机或麦克风的权限,请选择允许一次或始终允许,或关闭对话框以阻止访问。
允许权限后,我们可以在管理权限(Edge browser setting => Advanced => Manage permissions )下找到这个权限,截图如下:
根据您的描述,当 Edge 浏览器退出时,您将清除会话、cookie 和缓存,如果您不想允许,每次权限,您可以取消选中网站权限选项(截图如下),权限提示只会在我们第一次访问页面时显示。
添加回答
举报