Отправить токен из 2Captcha API для решения Hcaptcha с использованием Python Selenium Chromedriver - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь решить страницу Hcaptcha на веб-сайте, защищенном Cloudfare

Веб-сайт для доступа: https://carmanuals2.com/mazda/3-hatchback-2020-owner-s-manual-114463

Я выполнил инструкции по API Recatcha и может получить токен, который предполагается разместить в этих двух полях:

<textarea id="g-recaptcha-response-0418tkobioj8" name="g-recaptcha-response" style="display: none;"></textarea>
<textarea id="h-captcha-response-0418tkobioj8" name="h-captcha-response" style="display: none;"></textarea>

Документация по API: https://2captcha.com/2captcha-api#solving_hcaptcha

Следующий шаг - разместить токены на этих двух элементах. Однако я получаю сообщение об ошибке selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

Вот фрагмент моего кода, в который я пытаюсь разместить полученный токен (captcha)

        sitekey = site["src"].split("=")[-1]
        
        currenturl = driver.current_url
        print (currenturl)


        flag, captcha = solve_h_captcha(sitekey,currenturl)

        username = driver.find_element_by_name('g-recaptcha-response')
        username.send_keys(captcha)
        time.sleep(2)
        
        username = driver.find_element_by_name('h-captcha-response')
        username.send_keys(captcha)
        time.sleep(2)

#        username.send_keys(captcha)
        time.sleep(0.5)

Большое спасибо !!!!

1 Ответ

0 голосов
/ 13 июля 2020

Вероятно, вам нужно сделать что-то подобное из js:

driver.execute_script("""
  let [captcha] = arguments
  document.querySelector('[name="h-captcha-response"]').innerHTML = captcha
  document.querySelector('[name="g-captcha-response"]').innerHTML = captcha
""", captcha)
...