Интеграция расширения в Selenium с использованием Node.js

В этом руководстве мы покажем вам, как интегрировать браузерное расширение с помощью библиотеки Selenium WebDriver и выполнить автоматизированные задачи на конкретном веб-сайте.

Шаг 1: Установка зависимостей

  1. Установите Node.js и npm (Node.js Package Manager) на вашем компьютере. Вы можете скачать их с официального сайта Node.js.

  2. Установите необходимые пакеты, используя npm:

npm install selenium-webdriver

Шаг 2: Изменение параметров расширения

Прежде чем начать автоматизацию с расширением, необходимо добавить начальные настройки расширения, обязательно нужно добавить clientKey в файл defaultSettings.json.

Для этого необходимо скачать архив расширения https://zennolab.atlassian.net/wiki/spaces/APIS/pages/2116517889#%D0%A0%D1%83%D1%87%D0%BD%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0

Распаковать расширение и в корне распакованного архива будет файл defaultSettings.json в нем можно менять настройки, с описанием параметров можно ознакомиться на странице https://zennolab.atlassian.net/wiki/spaces/APIS/pages/2298413057

После того как настройки успешно изменены необходимо запаковать обратно в zip-архив

Шаг 3: Настройка Selenium WebDriver для работы с расширением

Теперь настроим Selenium WebDriver для использования созданного профиля браузера.
Для этого создадим файл index.js со следующим содержанием:

const { Builder, By, Key, until } = require('selenium-webdriver'); const chrome = require('selenium-webdriver/chrome'); const path = require('path'); (async function example() { // Путь к файлу расширения zip const extensionPath = path.resolve(__dirname, './extension.zip'); // Создание объекта опций браузера const options = new chrome.Options(); // Добавление расширения в опции браузера options.addExtensions(extensionPath); // Создание экземпляра веб-драйвера const driver = new Builder() .forBrowser('chrome') .setChromeOptions(options) .build(); try { // Открыть страницу Google await driver.get('https://google.com/'); // Пример: поиск элемента на странице и взаимодействие с ним const searchBox = await driver.findElement(By.name('q')); await searchBox.sendKeys('Selenium with extension', Key.RETURN); // Дождитесь результатов поиска await driver.wait(until.titleContains('Selenium with extension'), 5000); } finally { // Закрыть браузер после использования await driver.quit(); } })();

Шаг 4: Написание автоматизированных действий

Теперь, когда у вас есть настроенный браузер с расширением, вы можете использовать методы WebDriver для выполнения автоматизированных действий на веб-сайте.

Пример автоматизированного действия:

// Предположим, вы хотите кликнуть по элементу на странице driver.findElement(By.xpath("//button[@id='my-button']")).click();

Шаг 5: Запуск скрипта

Для запуска нашего автоматизированного скрипта, который запустит браузер и выполнит действия которые мы описали необходимо написать в консоли

Надеемся, что данное руководство было полезным для вас. Если у вас возникли вопросы, обращайтесь к официальной документации Selenium и документации вашего браузера.