Вставьте ответ внешней капчи в веб-страницу с помощью Selenium - PullRequest
1 голос
/ 14 января 2020

Я хочу знать, как я могу обрабатывать CAPTCHA при использовании Selenium. Я пытаюсь решить руководство CAPTCHA и посмотреть, как изменяются проверенные элементы веб-страницы.

 from selenium import webdriver


 url = 'https://patrickhlauke.github.io/recaptcha/'
 driver = webdriver.Chrome()
 driver.get(url)

 try:
    # captcha is present on the website
    captcha = driver.find_element_by_xpath("//iframe[contains(@src,'https://www.google.com/recaptcha/api2/anchor')]")
    sitekey = driver.find_element_by_class_name('g-recaptcha').get_attribute('data-sitekey')
 except Exception as e:"
    print(str(e))

Вопрос 1: Если я пройду тест, что именно изменится в элементах веб-страница? Я уверен, что значение response ниже? Потому что этот не меняется до и после теста CAPTCHA? Кажется логичным, что response должен стать доступным после заполнения CAPTCHA.

enter image description here

Вопрос 2: Кроме того, если Я нахожу response как мне вставить его на страницу? Я знаю, что капча уже решена. Но, возможно, мне нужен этот метод, если я хочу использовать внешние решатели CAPTCHA. Приведенный ниже код не работает, когда я получаю response от внешнего участника.

  javascript_code = 'document.getElementById("g-recaptcha-response").innerHTML = "{}";'.format(response)
  driver.execute_script(javascript_code)
...