JS Puppeteer:自动输入多个字符

时间:2019-02-17 10:43:10

标签: node.js puppeteer

我正在尝试使用type用人偶来填充html表单。根据文档:

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

...

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

我遇到其他干扰我输入过程的事件。如何自动输入文本?即一个keydown事件?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

或者,如果您只需要一个keydown事件,则可以通过将值设置为“几乎”所需的值来欺骗Puppeteer

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

并仅将type用于最后一个字符

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