Puppeteer 中文文档v25.8.0

Keyboard 类

Keyboard 提供了管理虚拟键盘的 API。高级 API 是 Keyboard.type(),它接收原始字符并在你的页面上生成相应的 keydown、keypress/input 和 keyup 事件。

签名

export declare abstract class Keyboard

备注

如需更精细的控制,你可以使用 Keyboard.down()Keyboard.up()Keyboard.sendCharacter() 手动触发事件,就像这些事件是由真实键盘生成的一样。

在 macOS 上,⌘ A -> 全选等键盘快捷键不起作用。请参阅 #1313

此类的构造函数被标记为内部。第三方代码不应直接调用构造函数,也不应创建扩展 Keyboard 类的子类。

示例 1

一个按住 Shift 以选择并删除某些文本的示例:

await page.keyboard.type('Hello World!');
await page.keyboard.press('ArrowLeft');

await page.keyboard.down('Shift');
for (let i = 0; i < ' World'.length; i++)
  await page.keyboard.press('ArrowLeft');
await page.keyboard.up('Shift');

await page.keyboard.press('Backspace');
// Result text will end up saying 'Hello!'

示例 2

一个按下 A 的示例

await page.keyboard.down('Shift');
await page.keyboard.press('KeyA');
await page.keyboard.up('Shift');

方法

方法

修饰符

说明

down(key, options)

派发 keydown 事件。

备注:

如果 key 是单个字符,并且除 Shift 之外没有按住其他修饰键,则还会生成 keypress/input 事件。可以指定 text 选项以强制生成 input 事件。如果 key 是修饰键,如 ShiftMetaControlAlt,则后续按键将在该修饰键激活的状态下发送。要释放修饰键,请使用 Keyboard.up()

在按键被按下一次之后,对 Keyboard.down() 的后续调用会将 repeat 设置为 true。要释放该键,请使用 Keyboard.up()

修饰键确实会影响 Keyboard.down()。按住 Shift 会以大写形式输入文本。

press(key, options)

Keyboard.down()Keyboard.up() 的快捷方式。

备注:

如果 key 是单个字符,并且除 Shift 之外没有按住其他修饰键,则还会生成 keypress/input 事件。可以指定 text 选项以强制生成 input 事件。

修饰键确实会影响 Keyboard.press()。按住 Shift 会以大写形式输入文本。

sendCharacter(char)

派发 keypressinput 事件。此方法不会发送 keydownkeyup 事件。

备注:

修饰键不影响 Keyboard.sendCharacter。按住 Shift 不会输入大写文本。

type(text, options)

为文本中的每个字符发送 keydownkeypress/inputkeyup 事件。

备注:

要按下特殊键(如 ControlArrowDown),请使用 Keyboard.press()

修饰键不影响 keyboard.type。按住 Shift 不会输入大写文本。

up(key)

派发 keyup 事件。