QMS - Rezerwacje internetowe
uw.bezkolejki.eu
выберите дату и время
появится капча которую я решаю через 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()