class: Keyboard
Keyboard 提供用于管理虚拟键盘的API. 高级API是 keyboard.type, 它接收原始字符并在页面上生成适当的 keydown、keypress/input 和 keyup 事件。
要进行更精细的控制, 可以使用 keyboard.down, keyboard.up, 和 keyboard.sendCharacter 手动触发事件,就像从真实键盘生成的一样。
来看一个例子, 当按住 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');
// 最终文本显示 'Hello!'
另一个例子, 当按下 A
await page.keyboard.down('Shift');
await page.keyboard.press('KeyA');
await page.keyboard.up('Shift');
注意 在 MacOS 上, 键盘快捷键比如
⌘ A-> 全选不起作用. 参见 #1313
keyboard.down(key[, options])
key<[string]> 按下的键的名称, 例如ArrowLeft. 了解全部的键名参见 [USKeyboardLayout]。options<[Object]>text<[string]> 如果指定,则使用此文本生成输入事件。
- returns: <[Promise]>
派发一个 keydown 事件.
如果key是单个字符,并且除了按住Shift之外没有其他修饰键的情况下,还会生成keypress/input事件。可以通过指定text选项来强制生成输入事件。
如果key是组件键, 比如 Shift,Meta,Control或Alt,则随后的按键将在激活该组合键的情况下发送。要释放组合键,请使用 keyboard.up.
按下该键之后,对keyboard.down的后续调用将repeat设置为true。要释放键,请使用keyboard.up。
注意 修饰键会影响
keyboard.down。按住Shift将会以大写形式键入文本。
keyboard.press(key[, options])
key<[string]> 要按下的键的名称,例如ArrowLeft。有关所有键名的列表,请参见[USKeyboardLayout]。options<[Object]>text<[string]> 如果指定,则使用此文本生成输入事件。delay<[number]> 在keydown和keyup之间等待的时间,以毫秒为单位。预设为 0 。
- returns: <[Promise]>
如果key是单个字符,并且除了按住Shift之外没有其他修饰键的情况下,还会生成keypress/input事件。可以指定text选项以强制生成输入事件。
注意 修饰键可以使
keyboard.press。按住Shift将会以大写形式键入文本。
keyboard.down和keyboard.up的快捷实现。
keyboard.sendCharacter(char)
char<[string]> 要发送到页面的字符。- returns: <[Promise]>
调度keypress和input事件, 不会发送keydown或keyup事件。
page.keyboard.sendCharacter('嗨');
注意 修饰键不会影响
keyboard.sendCharacter。按住Shift不会以大写形式键入文本。keyboard.type(text[, options])
text<[string]> 要键入到焦点元素中的文本。options<[Object]>delay<[number]>两次按键之间等待的时间,以毫秒为单位。预设为 0 。- returns: <[Promise]>
输入字符, 并产生 keydown, keypress/input, 和 keyup 事件。
要按下特殊键,例如Control或ArrowDown, 请使用 keyboard.press.
await page.keyboard.type('Hello'); // 立即输入
await page.keyboard.type('World', {delay: 100}); // 缓慢输入, 模拟用户
注意 组合键不会影响
keyboard.type. 比如按住Shift不会以大写形式输入文本。
keyboard.up(key)
key<[string]> 要释放的键的名, 比如ArrowLeft. 了解所有键名参阅 [USKeyboardLayout] 。- returns: <[Promise]>
派发一个 keyup 事件.
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
Puppeteer 中文文档
关于 LearnKu