Descrição:
Esta função automatiza o envio de mensagens personalizadas e anexos para vários contatos no WhatsApp Web. Ela lê uma planilha Excel contendo os números de telefone, as mensagens a serem enviadas e os caminhos dos arquivos de anexo. O script usa pyautogui para controlar o mouse e teclado, pyperclip para manipular o conteúdo da área de transferência e pandas para ler os dados da planilha.
O fluxo é: abrir o WhatsApp Web, buscar o contato pelo número, colar a mensagem, anexar um arquivo caso exista e enviar. Para localizar elementos da interface do WhatsApp Web, utiliza imagens (ex: lupa, ícone de anexo, documento).
python
CopyEdit
import pyautogui
import time
import pandas as pd
import pyperclip # Manipulação da área de transferência
# Carrega a planilha Excel com os dados dos contatos e mensagens
df = pd.read_excel(r"C:\\Users\\Usuario\\01. Desenvolvendo Programação\\Autamação Whats\\Contatos.xlsx")
# Itera sobre cada linha da planilha
for index, row in df.iterrows():
numero_completo = str(row["Telefone"]) # Número completo com código do país (ex: 5541998765432)
mensagem = row["Mensagem"]
caminho_arquivo = row["Caminho_Arquivo"] # Caminho do arquivo para enviar como anexo
# Ajusta o número para pesquisa no WhatsApp (últimos 9 dígitos)
numero_tratado = numero_completo[-9:]
# Aguarda o carregamento do WhatsApp Web
time.sleep(3)
# Localiza e clica no botão de pesquisa (ícone lupa)
lupa = pyautogui.locateCenterOnScreen("lupa.png")
if lupa:
pyautogui.click(lupa)
time.sleep(1)
else:
print("Lupa não encontrada na tela!")
continue
# Digita o número do contato e confirma para abrir conversa
pyautogui.write(numero_tratado)
time.sleep(2)
pyautogui.press("enter")
time.sleep(2)
# Copia a mensagem para a área de transferência e cola no campo de texto
pyperclip.copy(mensagem)
pyautogui.hotkey('ctrl', 'v')
time.sleep(1)
# Se existir caminho de arquivo para anexo, tenta enviar
if pd.notna(caminho_arquivo):
anexo = pyautogui.locateCenterOnScreen("anexo.png")
if anexo:
pyautogui.click(anexo)
time.sleep(1)
documento = pyautogui.locateCenterOnScreen("documento.png")
if documento:
pyautogui.click(documento)
time.sleep(1)
pyautogui.write(caminho_arquivo)
time.sleep(1)
pyautogui.press("enter")
time.sleep(2)
else:
print("Ícone de documento não encontrado!")
continue
# Envia a mensagem (e anexo, se houver)
pyautogui.press("enter")
time.sleep(3)
print("Mensagens enviadas com sucesso! ✅")