Puppeteer – это мощная библиотека Node.js, разработанная Google, которая предоставляет высокоуровневый API для управления автономными браузерами Chrome или Chromium. Он широко используется для очистки веб-страниц, автоматического тестирования и задач веб-автоматизации. В этой статье мы рассмотрим различные методы имитации нажатия клавиатуры и клавиши Enter с помощью Puppeteer. Мы предоставим примеры кода для каждого метода, которые помогут вам реализовать взаимодействие с клавиатурой в ваших сценариях Puppeteer.
Метод 1: использование методов keyboard.pressи keyboard.release
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://stackoverflow.com');
const elementHandle = await page.$('input#search');
await elementHandle.click();
const keyboard = page.keyboard;
await keyboard.press('Enter');
await keyboard.release('Enter');
await browser.close();
})();
Метод 2: использование метода keyboard.typeс клавишей Enter
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://stackoverflow.com');
const elementHandle = await page.$('input#search');
await elementHandle.click();
const keyboard = page.keyboard;
await keyboard.type('keyboard press enter', { delay: 100 });
await keyboard.press('Enter');
await browser.close();
})();
Метод 3. Использование метода page.evaluateдля запуска события нажатия клавиши Enter
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://stackoverflow.com');
const elementHandle = await page.$('input#search');
await elementHandle.click();
await page.evaluate(() => {
const inputElement = document.querySelector('input#search');
const event = new KeyboardEvent('keydown', { keyCode: 13 });
inputElement.dispatchEvent(event);
});
await browser.close();
})();
Метод 4. Использование метода page.typeс клавишей Enter
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://stackoverflow.com');
const elementHandle = await page.$('input#search');
await elementHandle.click();
await page.type('input#search', 'keyboard press enter\u000d');
await browser.close();
})();
Метод 5: использование методов page.keyboard.downи page.keyboard.up
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://stackoverflow.com');
const elementHandle = await page.$('input#search');
await elementHandle.click();
const keyboard = page.keyboard;
await keyboard.down('Enter');
await keyboard.up('Enter');
await browser.close();
})();
В этой статье мы рассмотрели несколько методов имитации нажатия клавиатуры и клавиши Enter с помощью Puppeteer. В зависимости от вашего конкретного варианта использования вы можете выбрать наиболее подходящий метод для ваших сценариев Puppeteer. Если вам нужно взаимодействовать с полями ввода, запускать функции поиска или имитировать отправку форм, эти методы помогут вам эффективно достичь целей веб-автоматизации.