首页 > 解决方案 > 使用 selenium 进行测试:chrome screensharing 自动选择选项卡并与音频共享

问题描述

我正在使用 Selenium 测试我的网站,我可以在--auto-select-desktop-capture-source="tab_name"启用屏幕共享时打开 chrome 并选择选项卡。现在我希望标签中播放的音频与视频一起出现在我的流中。手动执行此操作时,有一个启用音频共享的复选框,但有什么可以帮助从 Selenium 启用它吗?

这是一个小提琴:https : //jsfiddle.net/john_vera/yr2k9xob/5/ 在对话框中选择 chrome 选项卡后注意共享音频复选框​​。我想从 Selenium 中检查一下。

标签: seleniumgoogle-chromescreensharingweb-mediarecordergoogle-chrome-flags

解决方案


您可以创建自定义 chromium 构建并为此对话框实施绕过。要构建铬,您可以使用以下说明(适用于 Windows):这里

这里是文件 display_media_access_handler.cc 中的绕过:

寻找这一行:

// Orignal code
pending_request.picker->Show(picker_params, std::move(source_lists), std::move(done_callback));

并用这个替换它

// Bypass dialog
content::DesktopMediaID screenSource(content::DesktopMediaID::TYPE_SCREEN, content::DesktopMediaID::kNullId, web_contents);
screenSource.audio_share = true;

OnPickerDialogResults(web_contents, screenSource);
// End of bypass

我用 Chromium 版本 84 测试它。


推荐阅读