| whatsapp_send_message |
function |
py |
browser |
1.0.0 |
impure |
def whatsapp_send_message(name: str, text: str, *, port: int = 9222, target_url_substr: str = 'whatsapp', open_first: bool = True) -> dict |
Envia un mensaje de texto a un chat de WhatsApp Web en una pestana ya logueada del navegador diario via CDP, sin abrir ventana nueva ni darle foco. Abre el chat por nombre exacto (whatsapp_open_chat), verifica que el composer apunta al destinatario correcto antes de escribir (salvaguarda anti-envio-equivocado), teclea el texto con teclado CDP real (unico metodo que funciona con el editor Lexical), comprueba que el composer tiene exactamente el texto y envia con Enter. Accion con efecto: envia un mensaje DE VERDAD, no reversible. |
| whatsapp |
| cdp |
| browser |
| automation |
| python |
| navegator |
|
| whatsapp_open_chat_py_browser |
| cdp_eval_py_browser |
| cdp_type_chars_py_browser |
| cdp_press_key_py_browser |
|
|
|
false |
error_go_core |
|
| params |
output |
| name |
desc |
| name |
Nombre EXACTO del chat o grupo destinatario tal y como aparece en la lista lateral. Se usa para abrir el chat y como salvaguarda de que el composer apunta al destinatario correcto antes de escribir. |
|
| name |
desc |
| text |
Texto a enviar. Se teclea con teclado CDP real caracter a caracter. Enter lo envia (no inserta salto de linea); multilinea no soportado. |
|
| name |
desc |
| port |
Puerto de remote debugging de Chrome. Default 9222. |
|
| name |
desc |
| target_url_substr |
Substring que debe contener la URL del target (pestana). Default 'whatsapp'. |
|
| name |
desc |
| open_first |
Si True (default), abre el chat por su nombre antes de enviar. Si False, asume el chat ya abierto pero verifica el aria-label del composer contra name antes de escribir (aborta si no coincide). |
|
|
dict {sent: bool, name: str, last_row: str (texto de la ultima fila de #main tras enviar, si sent=True), reason: str (motivo del fallo, si sent=False), composer: str (contenido real del composer cuando hubo mismatch de texto)}. sent=True solo si el composer contenia exactamente el texto y se pulso Enter. Nunca lanza: los fallos se reportan en 'sent' + 'reason'. |
|
true |
| test_golden_envia_mensaje_y_devuelve_last_row |
| test_edge_open_fallido_sent_false_reason |
| test_seguridad_open_first_false_label_no_coincide_aborta_sin_escribir |
| test_mismatch_composer_sent_false_sin_press_enter |
|
python/functions/browser/whatsapp_send_message_test.py |
python/functions/browser/whatsapp_send_message.py |