1

我有一个在本地网络服务器上运行的页面,在 https 页面上,它使用 getUserMedia API 来做一些 photobooth 式网络摄像头的东西。

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

我正在运行 Chromedriver 26.0.1383.0。

有人知道如何让这种偏好永久存在吗?

4

2 回答 2

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
于 2013-06-18T07:52:34.937 回答
1

我遇到过同样的问题。我通过在 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 选项。

希望这可以帮助!

于 2017-08-30T17:45:41.280 回答