[Python] Download por automatização Python

Discussão em 'Python' iniciado por Stack, Maio 30, 2025.

  1. Stack

    Stack Membro Participativo

    Eu estou fazendo um codigo no em python usando o selenium, porém o arquivo quando ele clica para fazer o download, porém o arquivo dá erro no download e não baixa no local onde eu quero. Erro do downnload Imagem

    Script

    --- 4. Achar o primeiro regulamento na tabela e BAIXAR COM SELENIUM CLICK ---


    print("\n--- Localizando o primeiro regulamento e clicando para baixar (Selenium) ---")
    id_container_tabela = "tblDocumentosEnviados_wrapper"
    id_tabela_interna = "tblDocumentosEnviados"

    seletor_primeira_linha_tabela = None
    seletor_botao_download_primeiro_item = None
    try:
    seletor_primeira_linha_tabela = (By.XPATH, f"//div[@id='{id_container_tabela}']//table[@id='{id_tabela_interna}']/tbody/tr[1]")
    print(f"Aguardando a primeira linha da tabela de resultados (contêiner: '{id_container_tabela}', tabela: '{id_tabela_interna}')...")
    WebDriverWait(driver, 30).until(EC.visibility_of_element_located(seletor_primeira_linha_tabela))
    print("Tabela de resultados carregada.")

    seletor_botao_download_primeiro_item = (
    By.XPATH,
    f"//div[@id='{id_container_tabela}']//table[@id='{id_tabela_interna}']/tbody/tr[1]/td[last()]//a[@title='Download do Documento' and .//i[contains(@class, 'fi-download')]]"
    )
    print(f"Tentando encontrar botão de download do primeiro item com seletor: {seletor_botao_download_primeiro_item}")
    botao_download = WebDriverWait(driver, 20).until(
    EC.element_to_be_clickable(seletor_botao_download_primeiro_item)
    )
    print("Botão de download do primeiro item ENCONTRADO.")
    driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", botao_download)
    time.sleep(0.5)

    print("CLICANDO no botão de download via Selenium...")
    botao_download.click()
    print("Botão de download clicado. O download deve ter iniciado no Edge.")
    print("O script fará uma pausa longa para você verificar o status do download no Edge.")
    print("VERIFIQUE A BARRA/ÁREA DE DOWNLOADS DO EDGE E A PÁGINA 'edge://downloads'")
    print("Anote qualquer mensagem de erro que o Edge mostrar.")

    tempo_de_observacao = 60
    print(f"Aguardando {tempo_de_observacao} segundos para observação do download...")
    time.sleep(tempo_de_observacao)

    print(f"Verificando a pasta '{pasta_de_downloads}' pelo arquivo baixado...")
    download_detectado = False
    nome_arquivo_baixado = "Não detectado"
    arquivos_na_pasta = os.listdir(pasta_de_downloads)
    arquivos_pdf_baixados = [
    f for f in arquivos_na_pasta if f.lower().endswith(".pdf")
    and not f.lower().endswith(".partial") # Downloads incompletos do Edge podem usar .partial
    and not f.lower().endswith(".crdownload") # Por via das dúvidas
    and not f.lower().startswith("~$")
    ]

    Continue reading...

Compartilhe esta Página