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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:52:45