Selenium ChromeDriver - 请记住getUserMedia网络摄像头访问的“始终允许”设置

时间:2013-06-11 16:18:22

标签: google-chrome selenium selenium-webdriver selenium-chromedriver getusermedia

我在https页面上的本地网络服务器上运行了一个页面,该页面使用getUserMedia API来做一些照相术风格的网络摄像头。

在ChromeDriver中,浏览器不会记住允许网络摄像头访问的“始终允许”设置。我有了选项,它会在浏览器运行时记住这个偏好,但是一旦我退出/重新打开,提示就会返回。

我正在运行Chromedriver 26.0.1383.0。

有人知道如何永久保持这种偏好吗?

2 个答案:

答案 0 :(得分:2)

尝试使用HTTPS,但您应该能够记住/跳过提示。

作为替代方案,您可以使用--disable-web-security命令行选项覆盖安全策略,或使用伪造设备--use-fake-device-for-media-stream(这应该足以进行测试)。

尝试创建包含

的文件test.html
<!DOCTYPE HTML>
<video autoplay/>
<script>
  navigator.webkitGetUserMedia({audio:true,video:true},
    function(stream){
      document.querySelector('video').src =
        URL.createObjectURL(stream);
    });
</script>

然后杀死所有chrome实例并像这样启动chrome:

 chrome.exe --use-fake-device-for-media-stream --disable-web-security test.html

答案 1 :(得分:0)

我有同样的问题。我通过在C#

中执行以下操作解决了这个问题
var driverService = ChromeDriverService.CreateDefaultService();
var options = new ChromeOptions();

options.AddArgument("use-fake-device-for-media-stream");
options.AddArgument("use-fake-ui-for-media-stream");

var ChromeDriver = new ChromeDriver(driverService, options);

它与siddhadev的建议非常相似。我想添加一个代码示例,展示如何在Selenium中使用Chrome选项。

希望这有帮助!