JS Puppeteer:自动输入多个字符

JS Puppeteer: enter multiple chars atomically

我正在尝试使用 type 填写 html 表格。根据文档:

page.type(selector, text[, options])

...

Sends a keydown, keypress/input, and keyup event for each character in the text.

我对干扰我打字过程的其他事件有疑问。如何自动输入文本? IE。与单个 keydown 事件?

您可以这样做,page.keyboard.sendCharacter("text"),这将执行类似于一次性粘贴到文本中的操作。确保首先聚焦您要输入的选择器。

await page.focus('selector');
await page.keyboard.sendCharacter('text');

我不知道它是否符合你的需要,但如果你想避免键盘事件,你可以直接设置输入值

await page.evaluate(() => document.querySelector("YOUR_SELECTOR").value = "Puppeteer");

或者,如果您只需要一个 keydown 事件,您可以通过将值设置为 "almost" 您需要的

来欺骗 Puppeteer
await page.evaluate(() => document.querySelector("YOUR_SELECTOR").value = "Puppetee");

并且只对最后一个字符使用 type

await page.type("YOUR_SELECTOR", "r");