我正在尝试使用type
用人偶来填充html表单。根据文档:
page.type(selector, text[, options])
...
Sends a keydown, keypress/input, and keyup event for each character in the text.
我遇到其他干扰我输入过程的事件。如何自动输入文本?即一个keydown
事件?
答案 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");