使用Selenium(Python)在Mac端如何修改ChromeDriver默认摄像头为OBS虚拟摄像头
解决方法
步骤1:确认OBS虚拟摄像头的准确设备名称
- 打开Mac系统的「关于本机」→点击「更多信息」→在硬件分类下找到「相机」,在设备列表中找到OBS提供的虚拟摄像头,复制完整设备名,默认情况下名称为
OBS Virtual Camera - 也可以手动打开Chrome,进入「设置」→「隐私和安全」→「网站设置」→「摄像头」,在默认摄像头下拉列表中确认OBS虚拟摄像头的完整名称
步骤2:修改Selenium Chrome配置指定默认摄像头
你之前尝试的profile.default_content_setting_values.media_stream_camera.option不是Chrome支持的配置参数,摄像头默认设备对应的正确配置项为media.default_video_capture_device,直接添加到prefs字典中即可,完整代码如下:
options = webdriver.ChromeOptions() options.add_experimental_option("prefs", { "profile.default_content_setting_values.media_stream_mic": 1, # 1:允许, 2:阻止 "profile.default_content_setting_values.media_stream_camera": 1, # 1:允许, 2:阻止 "profile.default_content_setting_values.geolocation": 2, # 1:允许, 2:阻止 "profile.default_content_setting_values.notifications": 2, # 1:允许, 2:阻止 "media.default_video_capture_device": "OBS Virtual Camera" # 替换为你上一步查到的准确设备名 })
注意:启动Selenium前必须先打开OBS并启动虚拟摄像头,否则Chrome识别不到对应设备会自动回退到默认实体摄像头
备用方案(兼容性更高)
如果遇到Chrome版本更新导致prefs参数不生效的情况,可以直接使用已经配置好默认摄像头的Chrome用户配置目录,无需手动写prefs参数:
- 手动打开本地Chrome,按照步骤1将OBS虚拟摄像头设为默认,确认可以正常调用后关闭Chrome
- 在Selenium配置中添加用户目录参数,代码如下:
options = webdriver.ChromeOptions() # 替换路径中的myusername为你自己的Mac用户名 options.add_argument("user-data-dir=/Users/myusername/Library/Application Support/Google/Chrome/Default")
排查要点
- 确认OBS虚拟摄像头在系统层面可以被识别,没有权限异常
- 确认设备名拼写完全匹配,不要遗漏空格、大小写
- 不要给Chrome添加无痕模式启动参数,无痕模式会忽略自定义prefs和用户配置
内容的提问来源于stack exchange,提问作者Alexandre Tourinho
相关产品推荐
相关产品推荐

