Files
egutierrez 5b10b419a2 feat(browser): auto-commit con 44 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-06 12:49:54 +02:00

68 lines
2.6 KiB
Markdown

---
id: cdp_press_key_go_browser
name: cdp_press_key
kind: function
lang: go
domain: browser
purity: impure
version: 1.0.0
tested: false
tests: []
test_file_path: ""
description: "Pulsa una tecla especial por nombre via Input.dispatchKeyEvent CDP (Enter, Tab, Escape, flechas, etc.) sobre el elemento con foco activo."
tags: [cdp, browser, input, keyboard, navegator]
signature: "func CdpPressKey(c *CDPConn, keyName string) error"
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: error_go_core
imports: []
file_path: "functions/browser/cdp_press_key.go"
example: |
// Enfocar un input y pulsar Enter para enviar el formulario
_ = CdpClick(c, "input[name='q']")
_ = CdpTypeText(c, "golang")
_ = CdpPressKey(c, "Enter")
params:
- name: c
desc: "Conexion CDP activa obtenida con CdpConnect."
- name: keyName
desc: "Nombre de la tecla a pulsar. Valores soportados: Enter, Tab, Escape, Backspace, Delete, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, PageUp, PageDown, Space."
output: "nil si la tecla se despacho correctamente. Error si la conexion es nula, la tecla no esta en la tabla soportada, o CDP rechaza el evento."
---
## Ejemplo
```go
conn, _ := CdpConnect(9222)
// Enfocar campo de busqueda, escribir y enviar con Enter
_ = CdpClick(conn, "input[name='q']")
_ = CdpTypeText(conn, "golang generics")
if err := CdpPressKey(conn, "Enter"); err != nil {
log.Fatal(err)
}
// Navegar en un desplegable con flechas
_ = CdpClick(conn, "#dropdown")
_ = CdpPressKey(conn, "ArrowDown")
_ = CdpPressKey(conn, "ArrowDown")
_ = CdpPressKey(conn, "Enter")
// Cerrar un modal con Escape
_ = CdpPressKey(conn, "Escape")
```
## Cuando usarla
Usar cuando necesites simular pulsaciones de teclas especiales sobre el elemento con foco: enviar formularios con Enter, navegar opciones con flechas, limpiar campos con Backspace/Delete, cerrar modales con Escape, o desplazarse con PageUp/PageDown. Para escribir texto normal usa CdpTypeText.
## Gotchas
- La tecla actua sobre el elemento con foco activo. Llama a CdpClick primero para enfocar el elemento objetivo.
- Teclas sin caracter imprimible (Tab, Escape, flechas, Home, End, PageUp, PageDown) no envian el campo "text" — Chrome lo requiere asi para distinguir navegacion de insercion.
- Enter envia `text: "\r"` que es lo que Chrome espera para confirmar formularios y autocompletados.
- Space envia `key: " "` y `text: " "` — funciona como barra espaciadora y como insercion de espacio en inputs.
- Si la tecla que necesitas no esta en la tabla, la funcion retorna error explicito en vez de silencio.