Keyboard
Keyboardは、仮想キーボードを管理するためのAPIを提供します。高レベルAPIはKeyboard.TypeAsync()で、生の文字を受け取り、ページ上で適切なkeydown
、keypress
/input
、およびkeyup
イベントを生成します。
より細かく制御するには、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より前に追加keydown
イベントをディスパッチします。
keyは、意図するkeyboardEvent.keyの値、またはテキストを生成するための単一の文字を指定できます。key値のスーパーセットはこちらで確認できます。キーの例は以下の通りです。
F1
- F12
, Digit0
- Digit9
, KeyA
- KeyZ
, Backquote
, Minus
, Equal
, Backslash
, Backspace
, Tab
, Delete
, Escape
, ArrowDown
, End
, Enter
, Home
, Insert
, PageDown
, PageUp
, ArrowRight
, ArrowUp
, など。
以下の修飾キーショートカットもサポートされています: Shift
, Control
, Alt
, Meta
, ShiftLeft
, ControlOrMeta
。ControlOrMeta
はWindowsとLinuxではControl
に、macOSではMeta
に解決されます。
Shift
キーを押し続けると、keyに対応するテキストが大文字で入力されます。
keyが単一の文字の場合、大文字と小文字は区別され、a
とA
の値はそれぞれ異なるテキストを生成します。
keyがShift
、Meta
、Control
、またはAlt
のような修飾キーの場合、その後のキー入力はその修飾キーが有効な状態で送信されます。修飾キーを解放するには、Keyboard.UpAsync()を使用します。
キーが一度押された後、Keyboard.DownAsync()のその後の呼び出しではrepeatがtrueに設定されます。キーを解放するには、Keyboard.UpAsync()を使用します。
修飾キーはkeyboard.down
に影響を与えます。Shift
キーを押し続けると、テキストが大文字で入力されます。
使用方法
await Keyboard.DownAsync(key);
引数
戻り値
InsertTextAsync
v1.9より前に追加input
イベントのみをディスパッチし、keydown
、keyup
、またはkeypress
イベントは発生させません。
使用方法
await page.Keyboard.PressAsync("嗨");
修飾キーはkeyboard.insertText
に影響しません。Shift
キーを押し続けても、テキストは大文字で入力されません。
引数
戻り値
PressAsync
v1.9より前に追加ほとんどの場合、代わりにLocator.PressAsync()を使用してください。
keyは、意図するkeyboardEvent.keyの値、またはテキストを生成するための単一の文字を指定できます。key値のスーパーセットはこちらで確認できます。キーの例は以下の通りです。
F1
- F12
, Digit0
- Digit9
, KeyA
- KeyZ
, Backquote
, Minus
, Equal
, Backslash
, Backspace
, Tab
, Delete
, Escape
, ArrowDown
, End
, Enter
, Home
, Insert
, PageDown
, PageUp
, ArrowRight
, ArrowUp
, など。
以下の修飾キーショートカットもサポートされています: Shift
, Control
, Alt
, Meta
, ShiftLeft
, ControlOrMeta
。ControlOrMeta
はWindowsとLinuxではControl
に、macOSではMeta
に解決されます。
Shift
キーを押し続けると、keyに対応するテキストが大文字で入力されます。
keyが単一の文字の場合、大文字と小文字は区別され、a
とA
の値はそれぞれ異なるテキストを生成します。
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()のショートカットです。
引数
-
押すキーの名前、または生成する文字(例:
ArrowLeft
やa
)。 -
options
KeyboardPressOptions?
(オプション)-
Delay
[float]? (オプション)#keydown
とkeyup
の間の待機時間(ミリ秒)。デフォルトは0です。
-
戻り値
TypeAsync
v1.9より前に追加ほとんどの場合、代わりにLocator.FillAsync()を使用してください。ページに特別なキーボード処理がある場合にのみ、1つずつキーを押す必要があります。この場合はLocator.PressSequentiallyAsync()を使用してください。
テキスト内の各文字に対して、keydown
、keypress
/input
、およびkeyup
イベントを送信します。
Control
やArrowDown
のような特殊キーを押すには、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
イベントのみが送信されます。
引数
-
フォーカスされた要素に入力するテキスト。
-
options
KeyboardTypeOptions?
(オプション)-
Delay
[float]? (オプション)#キー入力間の待機時間(ミリ秒)。デフォルトは0です。
-
戻り値
UpAsync
v1.9より前に追加keyup
イベントをディスパッチします。
使用方法
await Keyboard.UpAsync(key);
引数
戻り値