а также

ся, что нажатие клавиши ввода у кукловода не имеет никакого эффекта. Однако, когда я нажимаю другие клавиши, он делает то, что должен. Это работает:

await page.press('ArrowLeft');

Это не:

await page.press('Enter');

Вот как выглядит вход:

Есть идеи?

РЕДАКТИРОВАТЬ: я также попробовал page.keyboard.down & page.keyboard.up, чтобы быть уверенным.

 Carson27 сент. 2017 г., 09:58
Перейдите по этой ссылкеключи-специальныеи, возможно, это не page.press ('Enter') не работает, может быть, вы ловите страницу, просто слушаете событие mouseup.
 Patrick Roberts27 сент. 2017 г., 09:53
Возможно попробовать'Accept'?
 Carson27 сент. 2017 г., 10:00
ты пыталсяawait page.press('Return')
 elena27 сент. 2017 г., 09:57
я пробовалawait page.press('Accept') но без результата :(
 BlackCap28 сент. 2017 г., 21:29
У меня тоже есть эта проблема. Я бегу кукловод сpuppeteer.launch({headless: false}); так что я вижу, что происходит, и ArrowLeft работает, а Enter - нет. Я проверил документацию API, и это ясно говорит о том, чтоpage.press("Enter") это способ сделать это, но это не работает для меня.

Ответы на вопрос(3)

page.keyboard.press ():

Вы можете использоватьpage.keyboard.press() для имитации нажатия клавиши ввода. Любой из следующих вариантов должен работать:

await page.keyboard.press('Enter'); // Enter Key
await page.keyboard.press('NumpadEnter'); // Numeric Keypad Enter Key
await page.keyboard.press('\n'); // Shortcut for Enter Key
await page.keyboard.press('\r'); // Shortcut for Enter Key
elementHandle.press ():

Кроме того, вы можете использовать использовать комбинациюpage.$() а такжеelementHandle.press() сосредоточиться на элементе перед нажатием Enter:

await (await page.$('input[type="text"]')).press('Enter'); // Enter Key
await (await page.$('input[type="text"]')).press('NumpadEnter'); // Numeric Keypad Enter Key
await (await page.$('input[type="text"]')).press('\n'); // Shortcut for Enter Key
await (await page.$('input[type="text"]')).press('\r'); // Shortcut for Enter Key
page.type ():

Кроме того, вы можете использоватьpage.type():

await page.type(String.fromCharCode(13));
page.keyboard.type ():

Точно так же вы можете использоватьpage.keyboard.type():

await page.keyboard.type(String.fromCharCode(13));
page.keyboard.sendCharacter ():

Другим альтернативным методом будет использованиеpage.keyboard.sendCharacter() метод:

await page.keyboard.sendCharacter(String.fromCharCode(13));
page.keyboard.down () / page.keyboard.up ():

Вы также можете использовать комбинациюpage.keyboard.down() а такжеpage.keyboard.up():

// Enter Key
await page.keyboard.down('Enter');
await page.keyboard.up('Enter');

// Shortcut for Enter Key
await page.keyboard.down('NumpadEnter');
await page.keyboard.up('NumpadEnter');

// Shortcut for Enter Key
await page.keyboard.down('\n');
await page.keyboard.up('\n');

// Shortcut for Enter Key
await page.keyboard.down('\r');
await page.keyboard.up('\r');

page.keyboard.press('Enter'); обычно :) у меня работает.

Посмотрите документациюВот, Я думаю, что вы должны использовать.keyboard до.press чтобы он работал правильно.

 kaiak20 нояб. 2017 г., 12:04
Не уверен, что разработать. Я думаю, что вы должны добавить.keyboard до.press чтобы это работало. По крайней мере, так я имитирую нажатие Enter в моих приложениях.
 Sid20 нояб. 2017 г., 11:41
Можете ли вы подробнее рассказать о своем ответе?
Решение Вопроса
await page.type(String.fromCharCode(13));

этот сайт Я заметил, чтоpage.type депешиbeforeinput а такжеinput события, ноpage.press не делает. Вероятно, это ошибка, но, к счастью, отправка кода ввода (13), кажется, работает, поэтому мы можем обойти это сейчас.

 vinesh19 мар. 2018 г., 13:18
Я должен был использоватьpage.keyboard.press(String.fromCharCode(13));
 elena29 сент. 2017 г., 07:55
Большое спасибо @BlackCap, это действительно работает! Очень умно!

Ваш ответ на вопрос