JS Puppeteer: введите несколько символов атомарно - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь заполнить HTML-форму кукловодом, используя type.Согласно документам:

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

...

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

У меня есть проблема с другими событиями, которые мешают процессу набора текста.Как я могу напечатать свой текст атомарно?Т.е. с одним keydown событием?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Я не знаю, соответствует ли это вашим потребностям, но если вы хотите избежать событий клавиатуры, вы можете установить непосредственно значение ввода

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");
0 голосов
/ 18 февраля 2019

вы можете сделать, page.keyboard.sendCharacter("text"), что сделает что-то похожее на вставку в текст сразу.Обязательно сначала сфокусируйте селектор, в который вы хотите ввести.

await page.focus('selector');
await page.keyboard.sendCharacter('text');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...