我在https页面上的本地网络服务器上运行了一个页面,该页面使用getUserMedia API来做一些照相术风格的网络摄像头。
在ChromeDriver中,浏览器不会记住允许网络摄像头访问的“始终允许”设置。我有了选项,它会在浏览器运行时记住这个偏好,但是一旦我退出/重新打开,提示就会返回。
我正在运行Chromedriver 26.0.1383.0。
有人知道如何永久保持这种偏好吗?
答案 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选项。
希望这有帮助!