Files
fn_registry/functions/browser/cdp_get_text.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.9 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_get_text function go browser 1.0.0 impure func CdpGetText(c *CDPConn, selector string, maxBytes int) (string, error) Retorna el texto visible (innerText) de la pagina o de un elemento CSS, con truncado opcional. Alternativa compacta a cdp_get_html cuando solo se necesita el texto legible.
cdp
browser
read
perception
navegator
cdp_evaluate_go_browser
false error_go_core
encoding/json
fmt
unicode/utf8
name desc
c Conexion CDP activa a una tab de Chrome. Debe estar conectada a una tab tipo 'page'.
name desc
selector Selector CSS del elemento del que leer el innerText. Si es cadena vacia, lee document.body.innerText (toda la pagina).
name desc
maxBytes Limite maximo de bytes del texto retornado. Si es <= 0 no hay limite. Si el texto supera el limite, se trunca con corte rune-safe y se añade un sufijo con el total original.
Texto visible del elemento o de toda la pagina. Si maxBytes > 0 y el texto supera el limite, retorna el texto truncado con sufijo '…[truncado, total N bytes]'. Error si el selector no matchea ningun elemento o si la conexion falla. false
functions/browser/cdp_get_text.go

Ejemplo

// Leer todo el body con limite de 20000 bytes (apto para LLM)
text, err := CdpGetText(conn, "", 20000)
if err != nil {
    log.Fatal(err)
}
fmt.Println(text)

// Leer un elemento concreto sin limite
price, err := CdpGetText(conn, ".product-price", 0)
if err != nil {
    // err contiene "elemento no encontrado: .product-price" si no existe en el DOM
    log.Fatal(err)
}
fmt.Println(price)

Cuando usarla

Para que un LLM lea el contenido de una pagina sin reventar su ventana de contexto. Preferir sobre cdp_get_html cuando solo necesitas el texto — innerText es 5-50x mas compacto que el HTML crudo. Usar selector para acotar a la seccion relevante (articulo, tabla, formulario) y maxBytes para garantizar el presupuesto de tokens.

Gotchas

  • innerText solo devuelve el texto de nodos visibles: elementos con display:none o visibility:hidden quedan excluidos. Si necesitas leer contenido oculto usa cdp_get_html y parsea.
  • El truncado corta en boundary de rune pero puede partir a media frase o a medio parrafo. Si necesitas preservar estructura semantica, ajusta maxBytes con margen o usa el selector para acotar la region.
  • Requiere conexion activa a una tab de tipo page (no background_page, no service_worker). Tabs en estado de carga pueden devolver texto parcial; esperar con cdp_wait_load si el contenido es dinamico.
  • El selector se escapa via json.Marshal — caracteres especiales como comillas simples, backslash o comillas dobles en el selector CSS son seguros.