package main import ( "context" "log" "os" "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...") opts := browser.DefaultNavigateOptions() opts.WaitUntil = "load" // Esperar evento de carga completa if err := b.Navigate(ctx, "https://example.com", opts); err != nil { log.Fatalf("Error al navegar: %v", err) } // 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!") }