跳到主要內容

Keyboard

鍵盤提供用於管理虛擬鍵盤的 API。高階 API 是 Keyboard.TypeAsync(),它接受原始字元,並在您的頁面上產生適當的 keydownkeypress/inputkeyup 事件。

為了更精細的控制,您可以使用 Keyboard.DownAsync()Keyboard.UpAsync()Keyboard.InsertTextAsync() 來手動觸發事件,就像它們是由真實鍵盤產生的一樣。

一個按住 Shift 以選取和刪除一些文字的範例

await page.Keyboard.TypeAsync("Hello World!");
await page.Keyboard.PressAsync("ArrowLeft");

await page.Keyboard.DownAsync("Shift");
for (int i = 0; i < " World".Length; i++)
await page.Keyboard.PressAsync("ArrowLeft");

await page.Keyboard.UpAsync("Shift");

await page.Keyboard.PressAsync("Backspace");
// Result text will end up saying "Hello!"

一個按下大寫 A 的範例

await page.Keyboard.PressAsync("Shift+KeyA");
// or
await page.Keyboard.PressAsync("Shift+A");

一個使用鍵盤觸發全選的範例

await page.Keyboard.PressAsync("ControlOrMeta+A");

方法

DownAsync

在 v1.9 之前新增 keyboard.DownAsync

發送 keydown 事件。

key 可以指定預期的 keyboardEvent.key 值或產生文字的單一字元。可以在 這裡 找到 key 值的超集。按鍵的範例為

F1 - F12Digit0- Digit9KeyA- KeyZBackquoteMinusEqualBackslashBackspaceTabDeleteEscapeArrowDownEndEnterHomeInsertPageDownPageUpArrowRightArrowUp 等。

也支援以下修改捷徑:ShiftControlAltMetaShiftLeftControlOrMetaControlOrMeta 在 Windows 和 Linux 上解析為 Control,在 macOS 上解析為 Meta

按住 Shift 將輸入與大寫的 key 對應的文字。

如果 key 是單一字元,則區分大小寫,因此值 aA 將產生不同的各自文字。

如果 key 是修飾鍵 ShiftMetaControlAlt,則後續的按鍵將在該修飾鍵處於活動狀態時發送。若要釋放修飾鍵,請使用 Keyboard.UpAsync()

在按鍵按下一次後,後續呼叫 Keyboard.DownAsync() 將使 repeat 設為 true。若要釋放按鍵,請使用 Keyboard.UpAsync()

注意

修飾鍵會影響 keyboard.down。按住 Shift 將輸入大寫文字。

用法

await Keyboard.DownAsync(key);

引數

  • key 字串#

    要按下的按鍵名稱或要產生的字元,例如 ArrowLefta

傳回


InsertTextAsync

在 v1.9 之前新增 keyboard.InsertTextAsync

僅發送 input 事件,不發出 keydownkeyupkeypress 事件。

用法

await page.Keyboard.PressAsync("嗨");
注意

修飾鍵不會影響 keyboard.insertText。按住 Shift 不會輸入大寫文字。

引數

  • text 字串#

    將輸入設定為指定的文字值。

傳回


PressAsync

在 v1.9 之前新增 keyboard.PressAsync
提示

在大多數情況下,您應該改用 Locator.PressAsync()

key 可以指定預期的 keyboardEvent.key 值或產生文字的單一字元。可以在 這裡 找到 key 值的超集。按鍵的範例為

F1 - F12Digit0- Digit9KeyA- KeyZBackquoteMinusEqualBackslashBackspaceTabDeleteEscapeArrowDownEndEnterHomeInsertPageDownPageUpArrowRightArrowUp 等。

也支援以下修改捷徑:ShiftControlAltMetaShiftLeftControlOrMetaControlOrMeta 在 Windows 和 Linux 上解析為 Control,在 macOS 上解析為 Meta

按住 Shift 將輸入與大寫的 key 對應的文字。

如果 key 是單一字元,則區分大小寫,因此值 aA 將產生不同的各自文字。

也支援 key: "Control+o"key: "Control++key: "Control+Shift+T" 等捷徑。當使用修飾鍵指定時,修飾鍵會被按下並保持按住狀態,同時按下後續的按鍵。

用法

await page.GotoAsync("https://keycode.info");
await page.Keyboard.PressAsync("A");
await page.ScreenshotAsync(new() { Path = "A.png" });
await page.Keyboard.PressAsync("ArrowLeft");
await page.ScreenshotAsync(new() { Path = "ArrowLeft.png" });
await page.Keyboard.PressAsync("Shift+O");
await page.ScreenshotAsync(new() { Path = "O.png" });
await browser.CloseAsync();

用於 Keyboard.DownAsync()Keyboard.UpAsync() 的捷徑。

引數

  • key 字串#

    要按下的按鍵名稱或要產生的字元,例如 ArrowLefta

  • options KeyboardPressOptions? (選用)

    • Delay [float]? (選用)#

      keydownkeyup 之間等待的時間,以毫秒為單位。預設值為 0。

傳回


TypeAsync

在 v1.9 之前新增 keyboard.TypeAsync
注意

在大多數情況下,您應該改用 Locator.FillAsync()。只有在頁面上有特殊的鍵盤處理時,才需要逐個按下按鍵 - 在這種情況下,請使用 Locator.PressSequentiallyAsync()

為文字中的每個字元發送 keydownkeypress/inputkeyup 事件。

若要按下特殊按鍵,例如 ControlArrowDown,請使用 Keyboard.PressAsync()

用法

await page.Keyboard.TypeAsync("Hello"); // types instantly
await page.Keyboard.TypeAsync("World", new() { Delay = 100 }); // types slower, like a user
注意

修飾鍵不會影響 keyboard.type。按住 Shift 不會輸入大寫文字。

注意

對於不在美式鍵盤上的字元,只會發送 input 事件。

引數

  • text 字串#

    要輸入到焦點元素中的文字。

  • options KeyboardTypeOptions? (選用)

    • Delay [float]? (選用)#

      按鍵之間等待的時間,以毫秒為單位。預設值為 0。

傳回


UpAsync

在 v1.9 之前新增 keyboard.UpAsync

發送 keyup 事件。

用法

await Keyboard.UpAsync(key);

引數

  • key 字串#

    要按下的按鍵名稱或要產生的字元,例如 ArrowLefta

傳回