| whatsapp_send_image |
function |
py |
browser |
1.0.0 |
impure |
def whatsapp_send_image(name: str, image_path: str, *, caption: str = '', port: int = 9222, target_url_substr: str = 'whatsapp', open_first: bool = True) -> dict |
Envia una imagen (con caption opcional) 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) y verifica el destinatario (salvaguarda anti-envio-equivocado), hace click real en 'Adjuntar' para exponer el <input type=file> vivo, asigna la imagen con cdp_set_file_input (DOM.setFileInputFiles), espera el preview de la bandeja inline, teclea el caption opcional con teclado CDP real, y hace click en el boton enviar (icono wds-ic-send-filled) verificando que la bandeja se cerro. Accion con efecto: envia la imagen DE VERDAD, no reversible. |
| whatsapp |
| cdp |
| browser |
| automation |
| image |
| upload |
| python |
| navegator |
|
| whatsapp_open_chat_py_browser |
| cdp_eval_py_browser |
| cdp_click_xy_py_browser |
| cdp_type_chars_py_browser |
| cdp_set_file_input_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 adjuntar. |
|
| name |
desc |
| image_path |
Ruta de la imagen a enviar. Se expande (~) y se convierte a ruta ABSOLUTA; debe existir en disco o aborta con error sin abrir el chat. |
|
| name |
desc |
| caption |
Texto opcional que acompana la imagen. Se teclea en el composer con teclado CDP real caracter a caracter; '' (default) envia la imagen sin caption. |
|
| 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 adjuntar. Si False, asume el chat ya abierto pero verifica el aria-label del composer contra name (aborta si no coincide). |
|
|
dict {ok: bool (alias de sent), sent: bool, recipient: str, image: str (ruta absoluta), caption: str, error: str (motivo del fallo, vacio si sent=True)}. sent=True solo si la imagen se adjunto, el caption (si lo hay) se verifico y se pulso enviar dejando la bandeja vacia. Nunca lanza: los fallos se reportan en 'sent'/'ok' + 'error'. |
|
true |
| test_golden_adjunta_caption_y_envia |
| test_envia_sin_caption_no_teclea |
| test_edge_imagen_no_existe_error_sin_abrir |
| test_edge_open_fallido_error_sin_adjuntar |
| test_seguridad_open_first_false_label_no_coincide_aborta |
| test_error_set_file_input_falla_no_envia |
|
python/functions/browser/whatsapp_send_image_test.py |
python/functions/browser/whatsapp_send_image.py |