Implementa capacidad para subir archivos a inputs de tipo file.
Incluye:
- UploadFile() y UploadFiles() para uno o múltiples archivos
- Validación de existencia de archivos
- Conversión automática a paths absolutos
- ClearFileInput() para limpiar
- GetFileInputValue() para obtener nombres seleccionados
- IsFileInputMultiple() para verificar atributo multiple
Usa CDP DOM.setFileInputFiles.
Archivo: pkg/browser/upload.go
Implementa API para acciones avanzadas de mouse y teclado.
Mouse actions:
- Hover(), DoubleClick(), RightClick()
- DragAndDrop() con animación suave
- ScrollTo(), ScrollBy(), ScrollToElement()
- MoveMouse() a coordenadas específicas
Keyboard actions:
- PressKey() con modificadores (Ctrl+C, Alt+F4)
- HoldKey() y ReleaseKey()
- SendKeys() para secuencias
Usa CDP Input.dispatchMouseEvent y Input.dispatchKeyEvent.
Archivo: pkg/browser/actions.go
Implementa capacidad para trabajar con elementos dentro de iframes.
Incluye:
- SwitchToFrame() por selector CSS
- SwitchToFrameByName() y SwitchToFrameByIndex()
- SwitchToMainFrame() para volver al contexto principal
- GetFrames() para listar árbol de frames
- WaitForFrame() para esperar carga
- EvaluateInFrame() para ejecutar JS en frame específico
Usa CDP Page.getFrameTree y manejo de execution contexts.
Archivo: pkg/browser/frames.go
Implementa gestión completa de tabs del navegador.
Incluye:
- GetTabs() para listar todos los tabs
- NewTab() para crear nuevos tabs
- CloseTab() y CloseOtherTabs()
- SwitchToTab() para cambiar foco
- WaitForNewTab() con callback de acción
- GetTabByURL() y GetTabByTitle() para búsqueda
- OnTabCreated() para eventos
Usa CDP Target domain para comunicación.
Archivo: pkg/browser/tabs.go
Implementa sistema para cargar y gestionar extensiones.
Incluye:
- Cargar extensiones desde carpetas o archivos .crx
- Config.Extensions para especificar al lanzar
- buildExtensionFlags() integrado en Launch()
- Extensiones predefinidas (uBlock, Tampermonkey)
- ListLocalExtensions() y GetExtensionPath()
Flags utilizadas: --load-extension, --disable-extensions-except
Archivo: pkg/browser/extensions.go, pkg/browser/browser.go
Implementa sistema completo de import/export y gestión de cookies.
Incluye:
- GetAllCookies() y FilterCookies() para búsqueda
- ExportCookiesToFile() / ImportCookiesFromFile() en JSON y Netscape
- DeleteCookiesByDomain() para limpieza
- ListProfiles() para gestión de perfiles
- Comando CLI cookies.go con subcomandos
Formatos soportados: JSON estándar y Netscape cookies.txt
Archivo: pkg/browser/profile_cookies.go, cmd/cookies.go
Implementa ToMarkdown() para convertir HTML a Markdown usando Turndown.js inline.
Incluye:
- Soporte para títulos, enlaces, imágenes, listas, tablas
- Opciones para incluir/excluir imágenes y enlaces
- Selector CSS opcional para convertir secciones específicas
- Comando CLI to_markdown.go para uso directo
Archivo: pkg/browser/markdown.go, cmd/to_markdown.go
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>