Files
fn_registry/functions/browser/cdp_connect_target.md
T
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

2.7 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
cdp_connect_target function go browser 1.0.0 impure func CdpConnectTarget(host string, port int, match string) (*CDPConn, error) Conecta por CDP a un target DETERMINISTA elegido por ID exacto o substring de URL, evitando engancharse a una pestaña al azar con el CDP global en 9222.
cdp
browser
connection
security
navegator
false error_go_core
name desc
host Host donde escucha el CDP. Vacío usa 'localhost'. Útil en WSL2 para apuntar a la IP de Windows.
name desc
port Puerto CDP del navegador (habitualmente 9222).
name desc
match Filtro de target: vacío = primera tab page (compat con CdpConnectHost); ID exacto del target; o substring case-insensitive de la URL de la pestaña.
*CDPConn listo para enviar comandos CDP al target elegido. Error si ninguna tab 'page' satisface el match. false
functions/browser/cdp_connect_target.go

Ejemplo

// Fijar la pestaña de GitHub para que el agente no toque otras abiertas
conn, err := browser.CdpConnectTarget("", 9222, "github.com")
if err != nil {
    log.Fatal(err)
}
defer conn.Close()

// Por ID exacto de target (obtenido de GET http://localhost:9222/json)
conn2, err := browser.CdpConnectTarget("", 9222, "ABCD1234-target-id")

// Compatibilidad: sin filtro = primera tab page (igual que CdpConnect)
conn3, err := browser.CdpConnectTarget("", 9222, "")

Cuando usarla

Cuando un agente debe atarse a UNA pestaña concreta (por URL) y NO a la primera al azar — crítico con CDP global en 9222 para no operar sobre pestañas ajenas (banca, correo, sesiones activas). Usar en lugar de CdpConnect/CdpConnectHost siempre que el contexto del agente sea "esta URL concreta" y no "cualquier tab disponible".

Gotchas

  • Si hay varias tabs cuya URL contiene el substring dado, se elige la primera que aparezca en /json (orden interno del navegador). Para mayor precisión, usar el ID exacto del target.
  • El match de URL es substring case-insensitive; "github" matchea "https://github.com/usuario/repo".
  • Con CDP global en 9222 y muchas pestañas abiertas, un match="" sigue siendo tan arriesgado como CdpConnect. Especificar siempre el match en producción.
  • La forma más segura para agentes automatizados es lanzar un perfil Chromium dedicado con --user-data-dir aislado y --remote-debugging-port propio, de modo que /json solo exponga las pestañas del agente.
  • WebSocketDebuggerURL puede cambiar entre reinicios del navegador; recalcular en cada sesión, no cachear entre ejecuciones.