【问题标题】:Accept microphone and camera permissions on Edge using selenium使用 selenium 在 Edge 上接受麦克风和摄像头权限
【发布时间】:2020-09-25 16:24:47
【问题描述】:

我在 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();

【问题讨论】:

  • 这是否回答了您的问题stackoverflow.com/a/58555433/5400362
  • 这两个我都看过。对于第一个,我试图从代码中做到这一点,不想要注册表选项。第二个累了,没用
  • 我不确定您是使用 MS Edge 旧版浏览器还是使用 MS Edge Chromium 浏览器进行测试?另请告知我们,您使用哪种编程语言进行此测试?如果您使用的是 MS Edge Chromium 浏览器,那么您可以尝试使用 this example 进行测试,让我们知道它是否适合您。
  • 我正在使用边缘铬和硒 java。我尝试过这样的事情(编辑过的问题并添加了详细信息),但仍然会在浏览器上显示权限

标签: selenium microsoft-edge


【解决方案1】:

我建议您使用下面的示例代码进行测试。我尝试使用 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...");
 }

【讨论】:

  • addArguments 在 selenium 3.141 和 selenium edgedriver 3.141 中是否有效?在选项列表中找不到 addArguments,只有 setCapability 存在。您使用的是哪个 edgechromium 浏览器版本和驱动程序版本
  • 看起来我使用的是 Selenium 4.0 alpha 版本。如果可能的话,您可以尝试使用它进行测试。它应该可以使用它。
【解决方案2】:

在 Selenium 3.141 版本中,我们没有 addArguments() 方法,但在 Selenium 4.0.0 alpha 版本中,我们有 addArguments() 方法

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);

【讨论】:

    猜你喜欢
    • 2013-08-18
    • 2022-08-14
    • 2011-08-03
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2012-10-04
    相关资源
    最近更新 更多