Я нашел решение, которое работает довольно хорошо. Вместо того чтобы пытаться нажать кнопку, чтобы разрешить использование мультимедийных устройств, я могу добавить сайт в список разрешенных сайтов мультимедийных устройств в реестре. После этого я могу сразу же перейти на сайт, на котором требуются мультимедийные устройства, и без всплывающего окна.
Требуемый путь к реестру:
HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\MediaCapture\AllowDomains
. on.
Там вы хотите создать ключ DWORD протокола и IP / FQDN, например, http://10.0.0.2
или 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))
, где trim_url
просто обрезает часть пути от URL.