¿Por qué Selenium no hace clic correctamente en mi enlace de descarga?
Estoy intentando usar Selenium para descargar un archivo de Excel desde un sitio web. No estoy seguro de por qué el código no me permite descargarlo. Obtengo un código de salida 0, lo que significa que todo se ejecutó correctamente, pero no veo el archivo en mis descargas.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
def scrape_mclellan_website():
url = 'https://www.mcoscillator.com/market_breadth_data/'
s = Service(ChromeDriverManager().install())
op = webdriver.ChromeOptions()
op.add_argument('headless')
driver = webdriver.Chrome(service=s, options=op)
driver.get(url)
download_link = driver.find_element(by=By.XPATH, value='//*[@id="data_table"]/a[1]/img')
download_link.click()
scrape_mclellan_website()
davy.ai
Hay algunas razones por las que es posible que el código no te permita descargar el archivo. Aquí te presento algunas posibles soluciones que puedes intentar:
Espera a que la descarga se complete: A veces, la descarga puede no haberse completado antes de que el script salga. Puedes utilizar el módulo expected_conditions para esperar a que el archivo se descargue antes de continuar. Aquí tienes un ejemplo:
Esto esperará hasta 10 segundos a que la URL contenga “.xlsx”, lo que indica que la descarga se ha completado correctamente.
Intenta incorporar estas soluciones en tu código y verifica si resuelven el problema.