Ir ao conteúdo

Posts recomendados

Postado

Bom dia, estou tentando fazer uma macro com o python, está tudo funcionando até a parte de fazer o upload do arquivo. Já tentei varias interações e nenhuma conseguiu colocar o arquivo em anexo, acredito que nem mesmo clicou no botão porque ele fica amarelo quando clica e não anexa arquivo. Pode me ajudar? se for necessário mudar para outra plataforma, posso mudar, mas preciso acompanhar visualmente o que está acontecendo. Já tentei usar o AutoIT mas ele so roda em segundo plano, não abre a janela nem nada. 


anexo.thumb.png.36967228aa9ce329085a16d604c7ca98.png
 

import os
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# Caminho para o ChromeDriver
service = Service("C:\\Users\\Citra LTDA\\Documents\\navegador\\chromedriver.exe")
driver = webdriver.Chrome(service=service)

# Função para registrar mensagens em um arquivo de log
def log_message(message, file_path):
    # Apagar o arquivo de log se já existir
    if os.path.exists(file_path):
        os.remove(file_path)
    
    with open(file_path, 'a') as log_file:
        log_file.write(message + "\n")

# Caminho do arquivo de log
log_file_path = "C:\\Users\\Citra LTDA\\Documents\\navegador\\executions.log"

# Abrir o site
try:
    driver.get("site")
    log_message("Página aberta com sucesso.", log_file_path)
except Exception as e:
    log_message(f"Erro ao abrir a página: {e}", log_file_path)

# Adicionar um atraso para garantir que a página e os elementos sejam carregados
time.sleep(3)

# Preencher o campo de usuário
try:
    user_input = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, 'logonuidfield'))
    )
    user_input.send_keys('-----')
    log_message("Campo de usuário preenchido com sucesso.", log_file_path)
except Exception as e:
    log_message(f"Erro ao preencher o campo de usuário: {e}", log_file_path)

# Preencher o campo de senha
try:
    password_input = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, 'logonpassfield'))
    )
    password_input.send_keys('-----')  # Substitua pela sua senha
    log_message("Campo de senha preenchido com sucesso.", log_file_path)
except Exception as e:
    log_message(f"Erro ao preencher o campo de senha: {e}", log_file_path)

# Clicar no botão de login
try:
    login_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.NAME, 'uidPasswordLogon'))
    )
    login_button.click()
    log_message("Botão de login clicado com sucesso.", log_file_path)
except Exception as e:
    log_message(f"Erro ao clicar no botão de login: {e}", log_file_path)

# Adicionar um atraso para garantir que a página seja carregada
time.sleep(5)

# Clicar no <td> com o onclick associado ao botão "BOQ"
try:
    boq_td = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, 'navNode_1_2'))
    )
    boq_td.click()  # Forçar o clique diretamente na célula <td>
    log_message("Clicou em BOQ com sucesso!", log_file_path)
except Exception as e:
    log_message(f"Ocorreu um erro ao tentar clicar no botão 'BOQ': {e}", log_file_path)

# Adicionar um atraso para garantir que a próxima página carregue
time.sleep(5)

# Carregar o arquivo CSV
csv_file_path = "C:\\Users\\Citra LTDA\\Documents\\navegador\\csv\\CT_REM_SI_teste.CSV"
try:
    if not os.path.isfile(csv_file_path):
        log_message("Arquivo CSV não encontrado.", log_file_path)
    else:
        # Verificar se o campo de upload está visível
        file_input = WebDriverWait(driver, 20).until(
            EC.presence_of_element_located((By.ID, 'WD18'))
        )
        
        # Simular um clique no campo de upload
        file_input.click()
        log_message("Campo de upload clicado com sucesso.", log_file_path)
        
        # Usar send_keys para o upload do arquivo
        time.sleep(1)  # Adicionar um pequeno atraso para garantir que o clique seja processado
        file_input.send_keys(csv_file_path)
        log_message("Arquivo CSV carregado com sucesso.", log_file_path)
except Exception as e:
    log_message(f"Erro ao carregar o arquivo CSV: {e}", log_file_path)

# Manter o navegador aberto por 10 segundos para ver o resultado
time.sleep(10)

# Fechar o navegador
driver.quit()
log_message("Execução finalizada e navegador fechado.", log_file_path)

# Para depuração: imprimir o conteúdo do log
with open(log_file_path, 'r') as log_file:
    print(log_file.read())


 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!