Selenium no puede hacer clic en el botón Obtener datos al usar Python

Resuelto Zac asked hace 4 años • 2 respuestas

Estoy extrayendo datos de este sitio web. El elemento está debajo y geckodriver.

<img class="getdata-button" style="float:right;" src="/common/images/btn-get-data.gif" id="get" onclick="document.getElementById('submitMe').click()">

pero no puedo hacer que Selenium haga clic en él. Intenté incluso xpath, id, pero no tuve suerte. ¿Hay alguna solución o solución alternativa para hacerlo?

Zac avatar Dec 04 '20 15:12 Zac
Aceptado

Para hacer clic en el elemento Get Data, puede utilizar cualquiera de las siguientes estrategias de localización :

  • Usando css_selector:

    driver.find_element_by_css_selector("img.getdata-button#get").click()
    
  • Usando xpath:

    driver.find_element_by_xpath("//img[@class='getdata-button' and @id='get']").click()
    

Idealmente, para hacer clic en el elemento necesita inducir WebDriverWait yelement_to_be_clickable() puede utilizar cualquiera de las siguientes estrategias de localización :

  • Usando CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "img.getdata-button#get"))).click()
    
  • Usando XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//img[@class='getdata-button' and @id='get']"))).click()
    
  • Nota : Debe agregar las siguientes importaciones:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
undetected Selenium avatar Dec 04 '2020 10:12 undetected Selenium