如何为Playwright启动的Chromium授予摄像头访问权限
Robot Framework + Playwright(Browser) 自动允许网页摄像头权限方案
优先采用浏览器上下文预授权方案,从根源避免权限弹窗弹出,稳定性远高于弹窗触发后再做点击处理,适配Windows环境全版本Chromium、Firefox、WebKit内核浏览器。
方案1:初始化阶段预授权(推荐,无弹窗)
Browser库直接封装了Playwright的原生权限配置能力,在新建浏览器上下文/启动浏览器时直接给目标域名授予摄像头权限即可,全程不会触发权限弹窗。
- 用
New Context+New Page逻辑初始化的用例写法:
*** Settings *** Library Browser *** Test Cases *** 摄像头功能自动化测试 # 给目标测试域名授予摄像头权限,如需同时用麦克风就把microphone加到权限列表 New Context ... permissions=["camera"] ... base_url=https://你的测试业务域名 ... ignore_https_errors=${TRUE} # 非HTTPS测试环境必须加该参数 New Page /调用摄像头的业务页面路径 # 后续页面触发摄像头调用时会直接放行,无任何权限弹窗
- 直接用
Open Browser快速启动的用例写法:
Open Browser ... url=https://你的测试业务页面地址 ... browser=chromium ... permissions=["camera"] ... ignore_https_errors=${TRUE}
方案2:弹窗触发后即时授权(兜底适配)
如果业务逻辑限制无法提前做初始化配置,需要等权限请求发起后再处理,注意这类弹窗是浏览器原生弹窗,不属于网页DOM元素,无法通过普通点击元素、坐标点击的方式稳定处理,直接调用权限授予关键字即可:
# 检测到页面发起摄像头权限请求时调用,直接给当前页面对应域名授权 Grant Permissions permissions=["camera"] origin=https://当前页面所属域名
前置注意事项
Windows系统存在两层摄像头权限拦截:
- 浏览器侧权限:用上述方案处理即可
- 系统侧隐私权限:需要提前在Windows「设置-隐私和安全性-摄像头」配置页,给测试所用的浏览器(Chrome/Edge/Chromium等)开启摄像头访问权限,否则浏览器侧授权后依然会被系统拦截。
不要尝试用图像识别、固定坐标点击的方式处理权限弹窗,不同浏览器版本、Windows系统版本的弹窗样式、按钮位置存在差异,脚本维护成本极高且稳定性极差。
内容的提问来源于stack exchange,提问作者Joao Gonçalves
相关产品推荐
相关产品推荐

