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

标签 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");

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

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

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

最佳答案

我解决了将 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"); 
这个线程帮助我到达那里:https://stackoverflow.com/a/52188760/1843429

关于java - 如何伪造流到 Chrome 而不是使用网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58690624/

相关文章:

google-chrome - 华为是否有类似 ChromeCustomTabs 或 SafariViewController 的替代方案?

html - 如何修复谷歌浏览器中错误的文本对齐方式 for rtl

java - 写入 XSSF Workbook 时,是什么导致我的程序陷入困境?

java - 是否可以在替换函数中使用 OR 条件/运算符?

c# - 使用 Selenium 2 查找嵌套 iFrame

javascript - 在javascript中捕获浏览器网络请求

google-chrome - 使用 Google API 的 Chrome 扩展中的 PUT 请求未呈现

java - 这是回调的正确用法吗?

java - 如何在Spring Boot中正确重写handleMethodArgumentNotValid

testing - 如何使用 chromedriver 测试多个版本的谷歌浏览器?