如何使用 Selenium Java 在 Mozilla Firefox 上使用虚拟网络摄像头

4
我正在尝试自动化一个包含网络摄像头流的网站。为了使其自动化,我需要某种方法来伪造网络摄像头。
我知道在Chrome中,选项 -use-fake-device-for-media-stream 模拟了一个网络摄像头。这对我而言在Chrome中可用。现在我需要在Firefox中实现相同的效果。
我在研究此问题时,从互联网上获得了以下信息。"在Firefox中,getUserMedia()调用中的特殊变量fake:true可以实现这一点"。

我不理解如何编写代码。请问是否有任何建议?我使用基于Java的Selenium。

相关问题:https://dev59.com/K1wZ5IYBdhLWcg3wGs_D。不幸的是没有答案。 - Eugene S
2个回答

4

在Firefox中可以在多个层面上进行操作:

  • 系统级别
  • 用户级别
  • 配置文件级别等

user.jspref.jschannel-prefs.js 中设置以下属性:

pref("media.navigator.permission.disabled", true);
pref("media.navigator.streams.fake", true);

或者

user_pref("media.navigator.permission.disabled", true);
user_pref("media.navigator.streams.fake", true);

然后重新启动您的计算机或重启Firefox服务。

之后调用您的URL,该URL会调用getUserMedia()函数,Firefox将显示虚假的音频/视频。


2
能否设置特定的流? - yellowsir

3

您可以使用:

profile.setPreference('media.navigator.streams.fake', true);

你知道这是在哪个版本的FF中添加的吗? - Dan Woodward
还可以在“about:config”中设置这个。 - Rob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接