跳到主要内容
版本:23.11.1

键盘类

键盘提供了一个用于管理虚拟键盘的 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 选项以强制生成输入事件。如果 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 选项以强制生成输入事件。

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

sendCharacter(char)

分派一个 keypressinput 事件。这不会发送 keydownkeyup 事件。

备注

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

type(text, options)

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

备注

要按下像 ControlArrowDown 这样的特殊键,请使用 Keyboard.press()

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

up(key)

分派一个 keyup 事件。