跳到主要内容

Keyboard

Keyboard 提供了用于管理虚拟键盘的 API。高级 API 是 keyboard.type(),它接收原始字符并在页面上生成相应的 keydownkeypress/inputkeyup 事件。

为了更精细的控制,可以使用 keyboard.down()keyboard.up()keyboard.insert_text() 手动触发事件,就像它们是由真实键盘生成的一样。

按住 Shift 键以选择和删除部分文本的示例

page.keyboard.type("Hello World!")
page.keyboard.press("ArrowLeft")
page.keyboard.down("Shift")
for i in range(6):
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 之前添加 keyboard.down

触发 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, ControlOrMetaControlOrMeta 在 Windows 和 Linux 上解析为 Control,在 macOS 上解析为 Meta

按住 Shift 键将输入与 key 对应的大写文本。

如果 key 是单个字符,它区分大小写,因此值 aA 将分别生成不同的文本。

如果 key 是修饰键(Shift, Meta, ControlAlt),后续按键将在此修饰键激活的情况下发送。要释放修饰键,请使用 keyboard.up()

按键按下一次后,后续对 keyboard.down() 的调用将把 repeat 设置为 true。要释放按键,请使用 keyboard.up()

注意

修饰键会影响 keyboard.down。按住 Shift 将输入大写文本。

用法

keyboard.down(key)

参数

  • key str#

    要按下的键名称或要生成的字符,例如 ArrowLefta

返回值


insert_text

在 v1.9 之前添加 keyboard.insert_text

仅触发 input 事件,不触发 keydownkeyupkeypress 事件。

用法

page.keyboard.insert_text("嗨")
注意

修饰键不会影响 keyboard.insertText。按住 Shift 不会输入大写文本。

参数

  • text str#

    将输入设置为指定的文本值。

返回值


press

在 v1.9 之前添加 keyboard.press
提示

在大多数情况下,应使用 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, ControlOrMetaControlOrMeta 在 Windows 和 Linux 上解析为 Control,在 macOS 上解析为 Meta

按住 Shift 键将输入与 key 对应的大写文本。

如果 key 是单个字符,它区分大小写,因此值 aA 将分别生成不同的文本。

也支持诸如 key: "Control+o"key: "Control++key: "Control+Shift+T" 之类的快捷方式。当与修饰键一起指定时,修饰键会被按下并保持,同时后续的键被按下。

用法

page = browser.new_page()
page.goto("https://keycode.info")
page.keyboard.press("a")
page.screenshot(path="a.png")
page.keyboard.press("ArrowLeft")
page.screenshot(path="arrow_left.png")
page.keyboard.press("Shift+O")
page.screenshot(path="o.png")
browser.close()

keyboard.down()keyboard.up() 的快捷方式。

参数

  • key str#

    要按下的键名称或要生成的字符,例如 ArrowLefta

  • delay float (可选)#

    keydownkeyup 之间等待的时间,单位为毫秒。默认为 0。

返回值


type

在 v1.9 之前添加 keyboard.type
注意

在大多数情况下,应使用 locator.fill()。只有在页面上有特殊的键盘处理时,才需要逐个按下按键 - 在这种情况下,请使用 locator.press_sequentially()

为文本中的每个字符发送 keydownkeypress/inputkeyup 事件。

要按下特殊键,例如 ControlArrowDown,请使用 keyboard.press()

用法

page.keyboard.type("Hello") # types instantly
page.keyboard.type("World", delay=100) # types slower, like a user
注意

修饰键不会影响 keyboard.type。按住 Shift 不会输入大写文本。

注意

对于非美式键盘上的字符,只会发送 input 事件。

参数

  • text str#

    要输入到聚焦元素的文本。

  • delay float (可选)#

    按键之间等待的时间,单位为毫秒。默认为 0。

返回值


up

在 v1.9 之前添加 keyboard.up

触发 keyup 事件。

用法

keyboard.up(key)

参数

  • key str#

    要按下的键名称或要生成的字符,例如 ArrowLefta

返回值