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);
引数
戻り値