Playwright中Web摄像头模拟无法适配S3预签名视频该如何解决?
Playwright摄像头测试视频模拟问题解决记录
我有一批基于Playwright的测试用例,用于实现摄像头的视频与照片捕获功能。当前通过'--use-fake-ui-for-media-stream','--use-fake-device-for-media-stream'参数,用桩数据实现功能。
我希望在常规E2E测试中动态使用视频模拟数据,经研究已成功将公开的.mp4流模拟到摄像头对应的video元素中。但在CI/CD流水线里,存储为AWS S3预签名链接(如https://my-e2e.s3.amazonaws.com/resources/my-face.webm?AWSAccessKeyId=ABC123FAKE&Signature=ABC123FAKED&Expires=1660724194)的测试视频,无法通过CaptureStream方案正常工作。
我怀疑问题可能受限于以下规则:
尝试对通过加密媒体扩展实现内容保护的媒体元素使用captureStream()会抛出异常。
或是我对AWS视频流的相关机制存在认知缺失。
2022年10月更新:为S3存储桶的CORS设置添加*作为允许源后,问题已解决。
参考资料:
- JS动态模拟视频的实现方法
- captureStream与video元素的配合工作原理
内容的提问来源于stack exchange,提问作者Chaika Bogdan
相关产品推荐
相关产品推荐

