Эффективные способы имитации нажатия клавиши и ввода клавиши с помощью Puppeteer для веб-автоматизации

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. Если вам нужно взаимодействовать с полями ввода, запускать функции поиска или имитировать отправку форм, эти методы помогут вам эффективно достичь целей веб-автоматизации.