Puppeteer 鍵盤

2020-06-29 14:23 更新

class: Keyboard v0.9.0

Keyboard 提供一個(gè)接口來(lái)管理虛擬鍵盤. 高級(jí)接口為 keyboard.type, 其接收原始字符, 然后在你的頁(yè)面上生成對(duì)應(yīng)的 keydown, keypress/input, 和 keyup 事件. 為了更精細(xì)的控制(虛擬鍵盤), 你可以使用 keyboard.down, keyboard.up 和 keyboard.sendCharacter 來(lái)手動(dòng)觸發(fā)事件, 就好像這些事件是由真實(shí)的鍵盤生成的. 持續(xù)按下 Shift 來(lái)選擇一些字符串并且刪除的例子:

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'); // 結(jié)果字符串最終為 'Hello!'

按下 A 的例子:

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

注意 在 MacOS 上, ? A -& 選擇全部等鍵盤快捷鍵不工作. 另見(jiàn) #1313

Methods

  • keyboard.down(key[, options])v0.9.0
  • keyboard.press(key[, options])v0.9.0
  • keyboard.sendCharacter(char)v0.9.0
  • keyboard.type(text, options)v0.9.0
  • keyboard.up(key)v0.9.0

Methods

keyboard.down(key[, options])v0.9.0

  • key <string> 按下的鍵名, 比如 ArrowLeft. 一個(gè)包含所有鍵名的列表見(jiàn) USKeyboardLayout.
  • options <Object> - text <string> 如果指定,則使用此文本生成輸入事件.
  • returns: <Promise> 會(huì)分發(fā)一個(gè) keydown 事件。 如果 key 是一個(gè)單獨(dú)字符并且沒(méi)有除了 Shift 的其他修飾符鍵正在被按下, 一個(gè) keypress/input 事件也將被生成. 可以指定 text 選項(xiàng)來(lái)強(qiáng)制生成輸入事件。 如果 key 是一個(gè)修飾鍵, Shift, Meta, Control, 或者是 Alt, 隨后的按鍵將與該修飾符一起發(fā)送. 要釋放修飾鍵, 請(qǐng)使用 keyboard.up。 在鍵被按下一次之后(譯者注: 按下之后沒(méi)有被釋放, 一般會(huì)持續(xù)的觸發(fā)該按鍵), 隨后將持續(xù)調(diào)用 keyboard.down, 事件對(duì)象的 repeat 將被設(shè)置為 true. 要釋放該鍵, 請(qǐng)使用 keyboard.up.

注意 修飾鍵會(huì)影響 keyboard.down, 持續(xù)按下 Shift 鍵將以大寫形式輸入文本。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)