---
id: cdp_set_cookie_go_browser
name: cdp_set_cookie
kind: function
lang: go
domain: browser
purity: impure
version: 1.0.0
tested: false
description: "Establece una cookie en el browser via Network.setCookie del protocolo CDP. Soporta cookies HttpOnly. Util para tests e2e que necesitan autenticar el browser sin pasar por la UI de login."
tags: [cdp, browser, cookie, e2e, auth, pendiente-usar]
signature: "func CdpSetCookie(c *CDPConn, name, value, domain, path string, httpOnly bool) error"
uses_functions:
  - cdp_connect_go_browser
uses_types: []
returns: []
returns_optional: false
error_type: error_go_core
imports: []
file_path: "functions/browser/cdp_set_cookie.go"
example: |
  conn, _ := browser.CdpConnect(9222)
  defer browser.CdpClose(conn, 0)
  // Tras hacer login HTTP en el test:
  if err := browser.CdpSetCookie(conn, "session", token, "localhost", "/", true); err != nil {
      log.Fatal(err)
  }
  browser.CdpNavigate(conn, "http://localhost:8080/dashboard")
params:
  - name: c
    desc: Conexion CDP abierta (de CdpConnect)
  - name: name
    desc: Nombre de la cookie
  - name: value
    desc: Valor de la cookie (token de sesion, etc.)
  - name: domain
    desc: Dominio sin protocolo (ej. "localhost", "example.com")
  - name: path
    desc: Path scope. Vacio se trata como "/"
  - name: httpOnly
    desc: Si true, cookie HttpOnly (no accesible desde JS)
output: "error si Network.setCookie falla; nil en exito"
---

## Notas

- Network.setCookie es un comando CDP nativo, no requiere JS evaluate.
- Permite cookies HttpOnly que `document.cookie` no puede setear desde JS.
- Necesita que el dominio coincida con la URL a la que se navegara despues.
