Интеграция расширения в Selenium с использованием Node.js
В этом руководстве мы подробно рассмотрим, как подключить браузерное расширение к Selenium WebDriver с использованием Node.js и использовать его для выполнения автоматизированных действий на веб-сайтах.
Шаг 1: Установка зависимостей
-
Установите Node.js и npm (Node.js Package Manager) на вашем компьютере. Вы можете скачать их с официального сайта Node.js.
-
Установите необходимые пакеты, используя npm:
npm install selenium-webdriver
Шаг 2: Изменение параметров расширения
Прежде чем начать автоматизацию с расширением, необходимо добавить начальные настройки расширения, обязательно нужно добавить clientKey в файл defaultSettings.json.
Для этого необходимо скачать архив расширения, распаковать расширение. В корне распакованного архива находится файл defaultSettings.json, в котором можно менять настройки (с описанием параметров можно ознакомиться на странице).
После внесения всех изменений сохраните их и снова упакуйте расширение в формат 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: Запуск скрипта
Чтобы запустить автоматизированный скрипт, который откроет браузер и выполнит описанные действия, введите следующую команду в консоли:
node index.js
Для обновления расширения без потери настроек и данных скопируйте все необходимые файлы из старой версии, затем скачайте новую версию расширения, распакуйте её и замените старую версию новой.
Мы надеемся, что это руководство оказалось полезным. Если у вас возникнут вопросы, рекомендуем обратиться к официальной документации Selenium и документации вашего браузера.
