Files
navegator/examples/basic.go
T
Developer 3253828fef
Tests / Lint (push) Has been cancelled
Tests / Unit Tests (push) Has been cancelled
Tests / E2E Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Initial commit: navegator - Chrome CDP automation for LLMs
Add complete navegator system for stealthy browser automation:
- CDP client with WebSocket communication
- Browser API with navigation, storage, network, runtime
- Stealth flags and anti-detection scripts
- Persistent profile support
- Examples and comprehensive documentation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-24 23:33:07 +01:00

93 lines
2.2 KiB
Go

package main
import (
"context"
"fmt"
"log"
"os"
"time"
"navegator/pkg/browser"
)
func main() {
ctx := context.Background()
// Crear configuración con perfil personalizado
config := browser.DefaultConfig()
config.ProfileName = "my-agent-profile"
// Si quieres modo visible, desactiva headless
// config.StealthFlags.Headless = false
// Lanzar navegador
log.Println("Lanzando navegador...")
b, err := browser.Launch(ctx, config)
if err != nil {
log.Fatalf("Error al lanzar navegador: %v", err)
}
defer b.Close()
log.Printf("Navegador iniciado. Perfil: %s\n", b.ProfilePath())
log.Printf("Debug URL: %s\n", b.DebugURL())
// Navegar a una página
log.Println("Navegando a example.com...")
if err := b.Navigate(ctx, "https://example.com", nil); err != nil {
log.Fatalf("Error al navegar: %v", err)
}
// Esperar un poco para que cargue
time.Sleep(2 * time.Second)
// Obtener HTML
log.Println("Obteniendo HTML...")
html, err := b.GetHTML(ctx, "")
if err != nil {
log.Fatalf("Error al obtener HTML: %v", err)
}
log.Printf("HTML length: %d bytes\n", len(html))
// Obtener texto del h1
log.Println("Obteniendo texto del h1...")
text, err := b.GetText(ctx, "h1")
if err != nil {
log.Fatalf("Error al obtener texto: %v", err)
}
log.Printf("H1 text: %s\n", text)
// Tomar screenshot
log.Println("Tomando screenshot...")
screenshot, err := b.Screenshot(ctx, false)
if err != nil {
log.Fatalf("Error al tomar screenshot: %v", err)
}
if err := os.WriteFile("screenshot.png", screenshot, 0644); err != nil {
log.Fatalf("Error al guardar screenshot: %v", err)
}
log.Println("Screenshot guardado en screenshot.png")
// Ejecutar JavaScript
log.Println("Ejecutando JavaScript...")
result, err := b.Evaluate(ctx, "window.location.href")
if err != nil {
log.Fatalf("Error al ejecutar JavaScript: %v", err)
}
log.Printf("Current URL: %v\n", result.Value)
// Cookies
log.Println("Obteniendo cookies...")
cookies, err := b.GetCookies(ctx)
if err != nil {
log.Fatalf("Error al obtener cookies: %v", err)
}
log.Printf("Cookies encontradas: %d\n", len(cookies))
for _, cookie := range cookies {
log.Printf(" - %s = %s\n", cookie.Name, cookie.Value)
}
log.Println("Ejemplo completado exitosamente!")
}