import os
import base64
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException, TimeoutException

# Definindo o diretório onde as imagens serão salvas
output_dir = 'captcha_images'
os.makedirs(output_dir, exist_ok=True)

driver = webdriver.Chrome()

try:
    # URL da página
    url = "https://pje.trt2.jus.br/consultaprocessual/captcha/detalhe-processo/0000005-09.2014.5.02.0080/1"

    for i in range(2000):
        driver.get(url)
        
        try:
            # Esperar até que o captcha esteja presente e visível
            captcha_element = WebDriverWait(driver, 10).until(
                EC.visibility_of_element_located((By.XPATH, '//*[@id="imagemCaptcha"]'))
            )

            # Pegar a URL da imagem do captcha (Base64)
            captcha_base64 = captcha_element.get_attribute('src').split(',')[1]  # Remover o prefixo 'data:image/png;base64,'

            # Decodificar o Base64 e salvar como um arquivo de imagem
            file_path = os.path.join(output_dir, f"captcha_{i+1}.png")
            with open(file_path, "wb") as file:
                file.write(base64.b64decode(captcha_base64))
            
            print(f"Imagem captcha {i+1} baixada com sucesso.")
        
        except TimeoutException:
            print("O elemento captcha não foi encontrado no tempo limite especificado.")
        except NoSuchElementException:
            print("O elemento captcha não foi encontrado na página.")

finally:
    print("Fechando o navegador.")
    driver.quit()
