Помогите зафиналить hcaptcha без кнопки сабмита

evgevg1

Новичок
Регистрация
29.10.2024
Сообщения
1
Благодарностей
0
Баллы
1
нажмите odbior karty -> dalej
выберите дату и время
появится капча которую я решаю через cap monste, но не могу зафиналить
Python:
def solve_and_input_captcha():
    try:
        # Извлечение ключа капчи
        WebDriverWait(driver, 15).until(
            EC.presence_of_element_located((By.XPATH, "//iframe[contains(@src, 'hcaptcha')]"))
        )
        site_key = get_site_key()

        # Получение решения капчи через API
        captcha_solution = solve_captcha(API_KEY, driver.current_url, site_key)
        if captcha_solution:
            print("Капча решена успешно.")

            # Подставляем токен в data-hcaptcha-response контейнера капчи
            captcha_container = driver.find_element(By.XPATH, "//div[@data-callback]")
            driver.execute_script(
                "arguments[0].setAttribute('data-hcaptcha-response', arguments[1]);",
                captcha_container, captcha_solution
            )

            # Подставляем токен в поле <textarea> с id h-captcha-response-...
            captcha_textarea = driver.find_element(By.XPATH, "//textarea[contains(@id, 'h-captcha-response')]")
            driver.execute_script("arguments[0].style.display = 'block';", captcha_textarea)
            captcha_textarea.send_keys(captcha_solution)
            print("Токен капчи успешно введен.")

            # Триггерим событие изменения и callback для обновления состояния капчи
            driver.execute_script("arguments[0].dispatchEvent(new Event('change', { bubbles: true }));", captcha_textarea)
            driver.execute_script("if (typeof hCaptcha !== 'undefined') { hCaptcha.execute(); }")
            print("События 'change' и 'callback' отправлены.")

            # Проверка вставленного токена в контейнере
            inserted_token = driver.execute_script("return arguments[0].getAttribute('data-hcaptcha-response');", captcha_container)
            print(f"Токен, вставленный в поле data-hcaptcha-response: {inserted_token}")
            if inserted_token != captcha_solution:
                print("Введенный токен не совпадает с решением капчи.")
                return

        else:
            print("Не удалось получить решение капчи.")
            exit()
    except Exception as e:
        print(f"Произошла ошибка при вводе капчи: {e}")
        driver.switch_to.default_content()
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)