You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ChromeDriver执行Selenium测试如何默认授予摄像头与麦克风权限

ChromeDriver 配置摄像头/麦克风默认允许访问的正确方案

现有三版配置的核心问题

  • 第一、二版配置失效原因:
    • 键名冗余:set/setUserPreferences 传入的是Chrome用户目录下Preferences文件的原生键,无需额外添加preferences.前缀,冗余前缀会导致配置完全不被Chrome识别。
    • 站点权限键格式错误:单站点媒体权限的正确键格式为profile.content_settings.exceptions.media_stream_camera."<协议>://<地址>:<端口>,*",占位符未替换、协议/端口不匹配都会导致配置失效。
  • 第三版配置崩溃原因:
    未指定固定用户目录的前提下,直接写入不完整的Preferences字段会导致Chrome配置文件结构损坏。Chrome默认启动临时用户目录时会自动生成完整的配置结构,手动写入的自定义键缺少关联的必填字段,走到媒体权限请求节点时会因配置解析失败直接退出。

推荐方案:命令行参数法(无需修改Preferences,兼容Twilio)

核心逻辑:使用--use-fake-ui-for-media-stream参数自动应答所有媒体权限请求,该参数仅跳过权限弹窗的手动确认,不会替换真实的摄像头/麦克风流,完全兼容Twilio服务
示例代码:

let options = new Options();
// 核心参数:自动允许摄像头、麦克风访问,不替换真实设备
options.addArguments('--use-fake-ui-for-media-stream');

// 多设备场景可指定使用的真实摄像头/麦克风路径,单设备可省略
// options.addArguments('--use-file-for-fake-video-camera=/dev/video0');
// options.addArguments('--use-file-for-fake-audio-capture=/dev/audio');

let driver = await new Builder()
  .setChromeOptions(options)
  .forBrowser("chrome")
  .build();

注意:不要和--use-fake-device-for-media-stream参数混淆,后者会强制替换为虚拟测试流,才会与Twilio不兼容

可选方案:细粒度站点权限配置(仅允许指定测试站点)

如果需要仅对测试站点开放媒体权限、禁止其他站点的权限,必须提前指定固定的用户数据目录,避免临时目录配置结构损坏:

let options = new Options();
// 指定固定的用户数据目录,避免临时目录配置损坏
options.addArguments('user-data-dir=/你的测试用Chrome用户目录路径');

// 配置指定站点的权限,无需加preferences前缀
options.setUserPreferences({
  "profile.content_settings.exceptions.media_stream_camera.\"https://<你的测试地址>:<端口>,*\"": 1,
  "profile.content_settings.exceptions.media_stream_mic.\"https://<你的测试地址>:<端口>,*\"": 1
});

let driver = await new Builder()
  .setChromeOptions(options)
  .forBrowser("chrome")
  .build();

权限值说明:1为允许,2为拒绝,0为弹出询问

常见疑问解答

  • Selenium完全可以调用本机真实摄像头/麦克风流,只要权限配置正确即可实现端到端测试。
  • 原生权限弹窗无法交互是因为其属于Chrome浏览器原生UI,不属于网页DOM结构,Selenium默认无法定位元素,因此必须通过配置提前跳过弹窗,无需尝试与弹窗交互。

内容的提问来源于stack exchange,提问作者annetta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 10:15:03