如何伪造流到 Chrome 而不是使用网络摄像头

Mat*_*att 6 java selenium google-chrome selenium-webdriver browserstack

我正在使用 Java 和 Selenium 编写测试自动化框架。我正在本地运行测试,也使用 Browserstack。

接受测试的网站包括使用 PC 相机扫描文档和面部的功能。

我想伪造一个流,而不是使用 PC 的网络摄像头。

有没有人设法做到这一点?

我正在使用以下 Chrome 选项:

chromeOptions.addArguments("--use-fake-ui-for-media-stream");
chromeOptions.addArguments("--use-fake-device-for-media-stream");
chromeOptions.addArguments("--use-file-for-fake-video-capture=C:/deleteme/bus.y4m");
Run Code Online (Sandbox Code Playgroud)

当我点击通常会打开网络摄像头的按钮时,网络摄像头没有打开,所以看起来它正在做某事。但是我的视频不能播放。

有没有人让这些适用于类似于我的场景,并且可以提供有关如何操作的更多信息?

任何帮助,将不胜感激。谢谢。

Lan*_*ano 1

我解决了将 mp4 文件转换为 mjpeg(这是一种也可以使用的格式)的问题,并将我的 chromedriver 设置为与您相同,但使用文件的相对路径。

options.addArguments("--use-fake-ui-for-media-stream",
                     "--use-fake-device-for-media-stream",
                     "--use-file-for-fake-video-capture=src/test/resources/sample_640x360.mjpeg"); 
Run Code Online (Sandbox Code Playgroud)

该线程帮助我到达那里:https ://stackoverflow.com/a/52188760/1843429