51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
import sys
|
|
import time
|
|
from urllib.parse import quote
|
|
from selenium import webdriver
|
|
from selenium.webdriver.chrome.options import Options
|
|
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.webdriver.common.keys import Keys
|
|
|
|
# Recibimos los datos
|
|
telefono = sys.argv[1]
|
|
mensaje = sys.argv[2]
|
|
|
|
chrome_options = Options()
|
|
chrome_options.add_argument("user-data-dir=C:\\whatsapp_sesion")
|
|
# Activa el modo invisible
|
|
chrome_options.add_argument("--headless=new")
|
|
# Le damos un tamaño de pantalla virtual grande
|
|
chrome_options.add_argument("--window-size=1920,1080")
|
|
|
|
driver = webdriver.Chrome(options=chrome_options)
|
|
|
|
try:
|
|
mensaje_encoded = quote(mensaje)
|
|
url = f"https://web.whatsapp.com/send?phone={telefono}&text={mensaje_encoded}"
|
|
|
|
driver.get(url)
|
|
wait = WebDriverWait(driver, 40)
|
|
|
|
# 1. Esperamos a que cargue el panel principal del chat
|
|
wait.until(EC.presence_of_element_located((By.XPATH, '//div[@id="main"]')))
|
|
|
|
# 2. Le damos 3 segundos para que WhatsApp termine de procesar el texto en la caja
|
|
time.sleep(15)
|
|
|
|
# 3. Buscamos la caja de texto directamente (está en el footer del chat)
|
|
caja_texto = wait.until(EC.presence_of_element_located((By.XPATH, '//footer//div[@contenteditable="true"]')))
|
|
|
|
# 4. Le enviamos la tecla "Enter" directamente a esa caja de texto
|
|
caja_texto.send_keys(Keys.ENTER)
|
|
|
|
# Esperamos 4 segundos para que aparezca el tilde gris antes de cerrar
|
|
time.sleep(7)
|
|
print("Mensaje enviado con éxito")
|
|
|
|
except Exception as e:
|
|
print(f"Error al enviar: {e}")
|
|
|
|
finally:
|
|
driver.quit() |