使用 selenium 接受 Edge 上的麦克风和摄像头权限

问题描述 投票:0回答:2

我正在 Edge 浏览器上运行 selenium 脚本。其中一项功能需要在两个窗口之间发起音频或视频呼叫。在 Chrome 中,我们可以在 Chrome 选项中使用“use-fake-ui-for-media-stream”。 Edge 有类似的东西吗?如果没有,是否有办法在运行时接受这些警报。我已经尝试过了-

driver.switchTo().alert().accept()
,

但这也不起作用,并抛出错误说

no such alert present

已编辑

我正在使用 Edge chromium 和 java selenium,并在代码中设置了如下属性。脚本运行时仍会弹出权限窗口

      Map<String, Object> prefs = new HashMap<String, Object>();
      prefs.put("profile.default_content_settings.popups", 0);
      prefs.put("download.default_directory",  fileDownloadLocation);
      EdgeOptions options= new EdgeOptions();
      options.setCapability("prefs", prefs);
      options.setCapability("allow-file-access-from-files", true);
      options.setCapability("use-fake-device-for-media-stream", true);
      options.setCapability("use-fake-ui-for-media-stream", true);
      DesiredCapabilities capabilities = DesiredCapabilities.edge;
      capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
      capabilities.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS,true);
      System.setProperty("webdriver.edge.driver", getDriverPath("EDGE"));
      driver = new EdgeDriver(options);
      driver.manage().window().maximize();
selenium microsoft-edge
2个回答
0
投票

我建议您使用下面的示例代码进行测试。我尝试使用 Edge Chromium 浏览器进行测试,看起来它没有请求权限弹出窗口。

JAVA代码:

public static void main(String[] args) 
 {                            
            System.setProperty("webdriver.edge.driver","\\msedgedriver.exe");       
            EdgeOptions op=new EdgeOptions();
            op.addArguments("use-fake-device-for-media-stream");
            op.addArguments("use-fake-ui-for-media-stream");       
            WebDriver browser = new EdgeDriver(op);
            browser.get("https://your_URL_here...");
 }

0
投票

Selenium 3.141 没有

addArguments()
方法,但是 Selenium 4.0.0 alpha 有:

EdgeOptions edgeOpts = new EdgeOptions();
edgeOpts.addArguments("allow-file-access-from-files");
edgeOpts.addArguments("use-fake-device-for-media-stream");
edgeOpts.addArguments("use-fake-ui-for-media-stream");
edgeOpts.addArguments("--disable-features=EnableEphemeralFlashPermission");
driver = new EdgeDriver(edgeOpts);
© www.soinside.com 2019 - 2024. All rights reserved.