How to interact with the reCAPTCHA audio element using Selenium and Python

前端 未结 1 1872
有刺的猬
有刺的猬 2020-11-29 13:00

I want to, click on the button to resolve the captcha through the audio, but selenium does not detect the specified \"id\".

browser.get(\"https://www.google.         


        
相关标签:
1条回答
  • 2020-11-29 13:39

    To click() on the button to resolve the captcha through the audio as the desired elements are within an <iframe> so you have to:

    • Induce WebDriverWait for the desired frame to be available and switch to it.

    • Induce WebDriverWait for the desired element to be clickable.

    • You can use the following Locator Strategies:

    • Code Block:

           from selenium import webdriver
           from selenium.webdriver.support.ui import WebDriverWait
           from selenium.webdriver.common.by import By
           from selenium.webdriver.support import expected_conditions as EC
      
           options = webdriver.ChromeOptions() 
           options.add_argument("start-maximized")
           options.add_experimental_option("excludeSwitches", ["enable-automation"])
           options.add_experimental_option('useAutomationExtension', False)
           driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
           driver.get("https://www.google.com/recaptcha/api2/demo")
           WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[src^='https://www.google.com/recaptcha/api2/anchor']")))
           WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span#recaptcha-anchor"))).click()
           driver.switch_to.default_content()
           WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[title='recaptcha challenge']")))
           WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button#recaptcha-audio-button"))).click()
      
    • Browser Snapshot:


    Reference

    Ways to deal with #document under iframe


    Outro

    You can find a couple of relevant discussions in:

    • How to click on the reCaptcha using Selenium and Java
    • CSS selector for reCaptcha checkbok using Selenium and vba excel
    • Find the reCAPTCHA element and click on it — Python + Selenium
    0 讨论(0)
提交回复
热议问题