我使用selenium和chromedriver编写UI测试。我需要一个假摄像头来扫描QRCode。
我像这样启动浏览器:
public static IWebDriver driver;
private static ChromeOptions GetChromeOptions()
{
ChromeOptions option = new ChromeOptions();
option.AddArgument("start-maximized");
option.AddArgument("disable-infobars");
option.AddArgument("use-fake-ui-for-media-stream"); // automatically allows browser to use webcam
option.AddArgument("use-fake-device-for-media-stream"); // uses a different webcam than the real one
option.AddArgument(@"use-file-for-fake-video-capture=D:SourceAURIS TIFOP SandBoxUITestingRetailAppRetailAppTestRetailAppTestbinDebugnetcoreapp2.2QRcode.mjpeg"); // uses File instead of default fake wbcam
return option;
}
public static void OpenBrowser()
{
driver = new ChromeDriver(".", GetChromeOptions());
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(Properties.IMPLICITWAIT);
}
但是当我去https://de.webcamtests.com/测试我的摄像头时,它无法检测到任何视频输入。
当删除最后一个参数行https://de.webcamtests.com/显示一个绿色的默认假摄像头。
我是否使用了错误的参数或我错过了其他东西?
我在QR码测试中也遇到了同样的问题。我试过用y4m文件代替mjpeg文件(可以用ffmpeg转换),并且很幸运地看到了模拟视频流。然而,这不是理想的解决方案,因为它是一个如此大的文件,我不能把它上传到GitHub。
希望有一个解决方案使用mjpeg文件,因为我的测试工作之前,但我不知道为什么不再。我正在像你一样设置它。
似乎是Chrome v.92中的一个bug。我的测试失败与。mjpeg视频,但与。y4m工作良好