///
JavaScript ReCaptcha v.3
9 августа 2024 г.

Как решить ReCaptcha v3 на JavaScript с помощью Selenium&CapMonster Cloud

  • Для запуска кода вам понадобится заранее установленный Node.js и все нужные зависимости (см. JavaScript ReCaptcha v.2). В файле “.env” прописываем значения:
CAPMONSTER_API_KEY=ВАШ_API_KEY
WEBSITE_KEY=6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob
WEBSITE_URL=https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta

 

  • В файле “main.js” пишем код для автоматического решения данного типа капчи. Нам нужно будет заранее узнать id для поиска элемента капчи, чтобы вернуть туда токен, полученный от сервера CapMonster Cloud. 
require('dotenv').config();
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV3ProxylessRequest } = require('@zennolab_com/capmonstercloud-client');

const CAPMONSTER_API_KEY = process.env.CAPMONSTER_API_KEY;
const WEBSITE_KEY = process.env.WEBSITE_KEY;
const WEBSITE_URL = process.env.WEBSITE_URL;

async function solveRecaptcha() {

    const options = new chrome.Options();
    const driver = await new Builder().forBrowser('chrome').setChromeOptions(options).build();

    // Инициализация CapMonster клиента
    const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CAPMONSTER_API_KEY }));

    try {
        await driver.get(WEBSITE_URL);
        console.log('Браузер инициализирован!');

        const recaptchaV3ProxylessRequest = new RecaptchaV3ProxylessRequest({
            websiteURL: WEBSITE_URL,
            websiteKey: WEBSITE_KEY,
            minScore: 0.7,
            pageAction: "verify",
        });

        // Получение решения капчи от CapMonster
        const solution = await cmcClient.Solve(recaptchaV3ProxylessRequest);
        console.log('Решение от CapMonster:', solution);

        // Вставка токена в форму капчи
        await driver.executeScript((result) => {
            document.getElementById('g-recaptcha-response-100000').style.display = 'block';
            document.getElementById('g-recaptcha-response-100000').style.visibility = 'visible';
            document.getElementById('g-recaptcha-response-100000').value = result;
        }, solution);

        console.log('Результат вставлен в текстовое поле!');

        await Promise.all([
            driver.wait(until.elementIsVisible(driver.findElement(By.id('v3_submit')))),
            driver.findElement(By.id('v3_submit')).click()
        ]);

        console.log('Кнопка "Проверить" нажата!');

    } catch (e) {
        console.error('Произошла ошибка:', e);
    } finally {
        await driver.quit();
    }
}

solveRecaptcha();

 

 

Объяснение кода: 

 

Загрузка переменных окружения: используется dotenv для загрузки переменных окружения из файла .env, таких как CAPMONSTER_API_KEY, WEBSITE_KEY и WEBSITE_URL.

 

Функция solveRecaptcha

Создает экземпляр драйвера Chrome с использованием Selenium WebDriver.

Инициализирует клиента CapMonster с использованием загруженного CAPMONSTER_API_KEY.

Переходит на веб-сайт с reCAPTCHA.

Создает запрос для решения reCAPTCHA типа V3 Proxyless с указанием параметров, таких как minScore и pageAction.

Решает reCAPTCHA с использованием CapMonster и получает решение.

Вставляет полученный токен (решение) в форму на веб-странице с использованием JavaScript.

Ожидает видимости элемента с id 'v3_submit' и затем кликает на него.

Выводит сообщения о выполненных шагах.

 

Блок try-catch-finally

Блок try содержит основной код выполнения автоматизации.

Блок catch обрабатывает любые исключения и выводит сообщение об ошибке.

Блок finally гарантирует, что драйвер будет закрыт даже в случае возникновения ошибки.

 

Вызов функции solveRecaptcha(): запускает функцию solveRecaptcha() для решения reCAPTCHA при выполнении скрипта.

 

 

Запуск кода и результат: 

none provided

NB: Напоминаем, что продукт используется для автоматизации тестирования на ваших собственных сайтах и на сайтах, к которым у вас есть доступ на законных основаниях.

ItGuy
geear
Партнёрская программа для разработчиков софта
Зарабатывайте до 30% от трат ваших пользователей на обход капчи
✅ Заявка отправлена
Спасибо за интерес к нашей партнёрской программе! Мы свяжемся с вами в течение 7 рабочих дней.
Заявка на подключение
Заполните форму, чтобы отправить заявку на подключение к партнёрской программе
Больше статей