12 Commits

Author SHA1 Message Date
Developer 0d51de26a6 fix: resolver conflicto de nombres en browser_test.go
Renombra función contains() a containsStr() en browser_test.go para evitar conflicto con contains() de accessibility.go.

Los tests de integración requieren Chrome instalado para pasar.

Archivo: pkg/browser/browser_test.go
2026-03-25 00:50:49 +01:00
Developer 1b9dc96556 feat: agregar método SendCommand al CDP client
Agrega método conveniente SendCommand() que retorna map directamente.

Simplifica llamadas CDP que necesitan resultado como map en lugar de struct.

Antes: Execute(ctx, method, params, &result)
Ahora: SendCommand(ctx, method, params) retorna map

Archivo: pkg/cdp/client.go
2026-03-25 00:48:46 +01:00
Developer 3a0250f7fb feat: expected conditions mejoradas
Implementa condiciones de espera específicas similares a Selenium.

Incluye:
- WaitUntilVisible() y WaitUntilHidden()
- WaitUntilClickable() y WaitUntilEnabled()
- WaitUntilDisabled() y WaitUntilSelected()
- WaitUntilTextMatches() y WaitUntilAttributeContains()
- WaitUntilURLContains() y WaitUntilTitleContains()

Todas con polling configurable y opciones de timeout.
WaitOptions con Timeout, PollInterval y ThrowOnError.

Archivo: pkg/browser/expected_conditions.go
2026-03-25 00:48:40 +01:00
Developer 6de1b08aa3 feat: subida de archivos (file uploads)
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
2026-03-25 00:48:31 +01:00
Developer 8a5002e7a3 feat: Actions API para acciones complejas
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
2026-03-25 00:48:23 +01:00
Developer f72275737a feat: manejo de iframes
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
2026-03-25 00:48:15 +01:00
Developer bab0836507 feat: manejo de múltiples tabs/ventanas
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
2026-03-25 00:48:07 +01:00
Developer 6e31ad38de feat: gestión de extensiones de Chrome
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
2026-03-25 00:48:01 +01:00
Developer cbefb93020 feat: gestión avanzada de cookies
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
2026-03-25 00:47:52 +01:00
Developer 6c570fe9cb feat: árbol de accesibilidad (accessibility tree)
Implementa GetAccessibilityTree() para obtener estructura semántica vía CDP.

Incluye:
- Roles ARIA de elementos (button, link, heading, etc)
- Nombres accesibles computados
- FindInteractiveElements() para elementos clickeables
- GetAccessibilitySummary() para resumen textual
- Comando CLI accessibility.go

Ideal para que LLMs entiendan estructura de páginas web.

Archivo: pkg/browser/accessibility.go, cmd/accessibility.go
2026-03-25 00:47:45 +01:00
Developer 01c6cafd23 feat: conversor de páginas web a markdown
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
2026-03-25 00:47:38 +01:00
Developer 3253828fef Initial commit: navegator - Chrome CDP automation for LLMs
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
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