5b10b419a2
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
---
|
|
id: cdp_nav_back_go_browser
|
|
name: cdp_nav_back
|
|
kind: function
|
|
lang: go
|
|
domain: browser
|
|
purity: impure
|
|
version: 1.0.0
|
|
tested: false
|
|
description: "Retrocede una entrada en el historial de navegación de la pestaña activa via Page.getNavigationHistory + Page.navigateToHistoryEntry. Equivalente a pulsar el botón Atrás del navegador."
|
|
tags: [cdp, browser, navigation, navegator]
|
|
signature: "func CdpNavBack(c *CDPConn) error"
|
|
uses_functions: []
|
|
uses_types: []
|
|
returns: []
|
|
returns_optional: false
|
|
error_type: error_go_core
|
|
imports: []
|
|
file_path: "functions/browser/cdp_nav_back.go"
|
|
example: |
|
|
conn, _ := browser.CdpConnect(9222)
|
|
defer browser.CdpClose(conn, 0)
|
|
_ = browser.CdpNavigate(conn, "https://example.com/paso1")
|
|
_ = browser.CdpNavigate(conn, "https://example.com/paso2")
|
|
// Volver a /paso1
|
|
if err := browser.CdpNavBack(conn); err != nil {
|
|
log.Println(err)
|
|
}
|
|
params:
|
|
- name: c
|
|
desc: "Conexión CDP activa obtenida de CdpConnect, apuntando a la pestaña que se quiere retroceder"
|
|
output: "nil si navegó correctamente a la entrada anterior; error si ya estamos al inicio del historial, la conexión es nula o el cast de tipos falla (respuesta CDP malformada)"
|
|
---
|
|
|
|
## Ejemplo
|
|
|
|
```go
|
|
conn, err := browser.CdpConnect(9222)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer browser.CdpClose(conn, 0)
|
|
|
|
_ = browser.CdpNavigate(conn, "https://metabase.local/dashboard/1")
|
|
_ = browser.CdpNavigate(conn, "https://metabase.local/question/42")
|
|
|
|
// Volver al dashboard
|
|
if err := browser.CdpNavBack(conn); err != nil {
|
|
log.Printf("no se pudo retroceder: %v", err)
|
|
}
|
|
```
|
|
|
|
## Cuando usarla
|
|
|
|
Cuando un flujo de automatización navega por varias páginas y necesita volver atrás sin conocer la URL anterior. Útil en scraping de paginaciones o en flujos de formularios multipaso donde la URL destino no es predecible.
|
|
|
|
## Gotchas
|
|
|
|
- Navega dentro del historial de ESA pestaña CDP (sesión WS), no del perfil en disco ni del historial global de Chrome.
|
|
- Si `currentIndex == 0` (primer elemento del historial), retorna error "ya en el inicio del historial" — no es un fallo de red, es estado válido.
|
|
- Requiere que `Page` esté habilitado en la sesión; Chrome lo activa automáticamente con la mayoría de conexiones CDP, pero si usas una sesión muy restrictiva puede fallar.
|
|
- No espera a que la página de destino cargue; encadenar con `CdpWaitLoad` o `CdpWaitIdle` si necesitas esperar la carga completa.
|