使用Playwright/TypeScript触发键盘媒体键时遇未知键错误求助
解决Playwright/TypeScript模拟媒体键按下的问题
问题原因
Playwright的keyboard.press方法内部键映射表并未完全支持所有媒体键名称(如MediaStop、MediaPlayPause),直接调用会触发未知键错误。
可行解决方案
方案一:直接在页面触发DOM键盘事件
通过page.evaluate在浏览器上下文内模拟完整的媒体键按下/释放事件,这是最可靠的方式:
// 模拟播放/暂停媒体键 await page.evaluate(() => { // 触发keydown事件 const keydownEvent = new KeyboardEvent('keydown', { key: 'MediaPlayPause', code: 'MediaPlayPause', bubbles: true, cancelable: true }); document.dispatchEvent(keydownEvent); // 触发keyup事件,模拟完整按键流程 const keyupEvent = new KeyboardEvent('keyup', { key: 'MediaPlayPause', code: 'MediaPlayPause', bubbles: true, cancelable: true }); document.dispatchEvent(keyupEvent); });
其他媒体键只需替换key和code的值:
- 停止:
MediaStop - 下一曲:
MediaTrackNext - 上一曲:
MediaTrackPrevious
方案二:升级Playwright到最新版本
部分旧版本Playwright未添加媒体键的别名支持,升级到最新稳定版后可尝试直接调用:
首先执行升级命令:
npm install -D @playwright/test@latest
然后重新尝试原代码:
await page.keyboard.press('MediaPlayPause');
内容的提问来源于stack exchange,提问作者user3054735
相关产品推荐
相关产品推荐

