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是组件键, 比如 ShiftMetaControlAlt,则随后的按键将在激活该组合键的情况下发送。要释放组合键,请使用 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]> 在keydownkeyup之间等待的时间,以毫秒为单位。预设为 0 。
  • returns: <[Promise]>
    如果key是单个字符,并且除了按住Shift之外没有其他修饰键的情况下,还会生成keypress/input事件。可以指定text选项以强制生成输入事件。

注意 修饰键可以使keyboard.press。按住Shift将会以大写形式键入文本。

keyboard.downkeyboard.up的快捷实现。

keyboard.sendCharacter(char)

  • char <[string]> 要发送到页面的字符。
  • returns: <[Promise]>

调度keypressinput事件, 不会发送keydownkeyup事件。

page.keyboard.sendCharacter('嗨');

注意 修饰键不会影响keyboard.sendCharacter。按住Shift不会以大写形式键入文本。

keyboard.type(text[, options])

  • text <[string]> 要键入到焦点元素中的文本。
  • options <[Object]>
  • delay <[number]>两次按键之间等待的时间,以毫秒为单位。预设为 0 。
  • returns: <[Promise]>

输入字符, 并产生 keydown, keypress/input, 和 keyup 事件。

要按下特殊键,例如ControlArrowDown, 请使用 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 事件.

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
贡献者:3
讨论数量: 0
发起讨论 只看当前版本


暂无话题~