Keyboard
Keyboard は、仮想キーボードを管理するための API を提供します。高レベル API は Keyboard.type() で、これは生の文字を受け取り、ページ上で適切な keydown
、keypress
/input
、keyup イベントを生成します。
より細かい制御のためには、Keyboard.down()、Keyboard.up()、Keyboard.insertText() を使用して、実際のキーボードから生成されたかのように手動でイベントを発行できます。
テキストを選択して削除するために Shift キーを押し続ける例
page.keyboard().type("Hello World!");
page.keyboard().press("ArrowLeft");
page.keyboard().down("Shift");
for (int i = 0; i < " World".length(); i++)
page.keyboard().press("ArrowLeft");
page.keyboard().up("Shift");
page.keyboard().press("Backspace");
// Result text will end up saying "Hello!"
大文字の A を押す例
page.keyboard().press("Shift+KeyA");
// or
page.keyboard().press("Shift+A");
キーボードで全選択をトリガーする例
page.keyboard().press("ControlOrMeta+A");
メソッド
down
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.up() を使用します。
キーが一度押されると、Keyboard.down() の後続の呼び出しでは、repeat が true に設定されます。 キーを解除するには、Keyboard.up() を使用します。
修飾キーは keyboard.down に影響します。Shift
キーを押し続けると、テキストは大文字で入力されます。
使用例
Keyboard.down(key);
引数
戻り値
insertText
v1.9 より前に追加input
イベントのみを発行し、keydown
、keyup
、keypress イベントは発行しません。
使用例
page.keyboard().insertText("嗨");
修飾キーは keyboard.insertText
に影響しません。Shift
キーを押し続けても、テキストは大文字で入力されません。
引数
戻り値
press
v1.9 より前に追加ほとんどの場合、代わりに Locator.press() を使用する必要があります。
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"
などのショートカットもサポートされています。 修飾キーを指定した場合、修飾キーが押され、後続のキーが押されている間保持されます。
使用例
Page page = browser.newPage();
page.navigate("https://keycode.info");
page.keyboard().press("A");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("A.png")));
page.keyboard().press("ArrowLeft");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("ArrowLeft.png")));
page.keyboard().press("Shift+O");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("O.png")));
browser.close();
Keyboard.down() および Keyboard.up() のショートカット。
引数
-
押すキーの名前、または生成する文字 (
ArrowLeft
やa
など)。 -
options
Keyboard.PressOptions
(オプション)
戻り値
type
v1.9 より前に追加ほとんどの場合、代わりに Locator.fill() を使用する必要があります。 ページに特別なキーボード処理がある場合にのみ、キーを 1 つずつ押す必要があります。この場合は Locator.pressSequentially() を使用してください。
テキスト内の各文字に対して、keydown
、keypress
/input
、keyup イベントを送信します。
Control
や ArrowDown
などの特殊キーを押すには、Keyboard.press() を使用します。
使用例
// Types instantly
page.keyboard().type("Hello");
// Types slower, like a user
page.keyboard().type("World", new Keyboard.TypeOptions().setDelay(100));
修飾キーは keyboard.type
に影響しません。Shift
キーを押し続けても、テキストは大文字で入力されません。
US キーボードにない文字の場合、input イベントのみが送信されます。
引数
-
フォーカスされた要素に入力するテキスト。
-
options
Keyboard.TypeOptions
(オプション)
戻り値
up
v1.9 より前に追加keyup イベントを発行します。
使用例
Keyboard.up(key);
引数
戻り値