Browser automation library with JSON flow orchestration
Project description
navegador-automate 🚀
Librería de automatización de navegadores con orquestación de flujos JSON. Sin configuración manual, sin dependencias externas complicadas.
🎯 Características
- ✅ BrowserFactory (Builder Pattern) - Crear navegadores sin configuración
- ✅ FlowDefinition - Definir flujos con JSON
- ✅ Executor - Ejecutar pasos automatizados
- ✅ FlowOrchestrator - Orquestar múltiples flujos
- ✅ Ejecución Paralela - ThreadPoolExecutor integrado
- ✅ Multi-OS - Windows, macOS, Linux
- ✅ Multi-Browser - Firefox, Edge, Chrome, Safari
- ✅ Retry Automático - Manejo de timeouts
- ✅ Logging Centralizado - Con rotación automática
- ✅ Variable Interpolation - ${USERNAME}, ${PASSWORD}, etc
- ✅ 60 Tests - 100% path coverage
📦 Instalación
Desde PyPI (próximamente)
pip install navegador-automate
Desde el repositorio
git clone https://github.com/LJD-UwU/navegador-automate.git
cd navegador-automate
pip install -e .
Con dependencias de desarrollo
pip install -e ".[dev]"
🚀 Quick Start
Uso Simple (BrowserFactory)
from navegador_automate import BrowserFactory
# Sin Config manual ✅
browser = BrowserFactory.firefox(headless=False).build()
browser.open("https://example.com")
browser.click("xpath=//button[@id='login']")
browser.type_text("id=email", "user@example.com")
browser.type_text("id=password", "secret")
browser.wait_for_element("id=dashboard")
browser.quit()
Uso con Context Manager
from navegador_automate import BrowserContext
with BrowserContext("firefox", headless=False) as browser:
browser.open("https://example.com")
browser.click("xpath=//button")
# Browser auto-closes
Orquestación de Flujos
from navegador_automate import BrowserFactory, FlowOrchestrator
from steps_flows.flows_config import COMMANDS
browser = BrowserFactory.firefox().build()
orch = FlowOrchestrator(
browser,
commands=COMMANDS,
credentials={
"USERNAME": "user@example.com",
"PASSWORD": "secret123"
}
)
# Ejecutar flujo simple
result = orch.run("base")
print(f"Success: {result['success']}")
# O múltiples en paralelo
result = orch.run("all")
browser.quit()
📋 Builder Pattern
factory = (
BrowserFactory.firefox()
.with_headless(True)
.with_download_dir("/custom/download/path")
.with_profile_dir("/custom/profile/path")
)
browser = factory.build()
🔗 Selectores Soportados
# XPath
browser.click("xpath=//button[@id='submit']")
# CSS
browser.click("css=.button-primary")
# ID
browser.click("id=submit-btn")
# Name
browser.click("name=action")
# Class
browser.click("class=btn")
# Tag
browser.click("tag=button")
🔄 Comandos de Flujos JSON
[
{"command": "open", "target": "https://example.com", "value": ""},
{"command": "type", "target": "id=email", "value": "${USERNAME}"},
{"command": "type", "target": "id=password", "value": "${PASSWORD}"},
{"command": "click", "target": "xpath=//button[@type='submit']", "value": ""},
{"command": "wait", "target": "id=dashboard", "value": "10000"},
{"command": "pause", "target": "", "value": "2000"},
{"command": "key", "target": "", "value": "ENTER"}
]
📝 Ejemplos
Ver directorio steps_flows/ para ejemplos completos:
basic.py- Uso simple BrowserFactoryflows_orchestration.py- Orquestación con flows_configparallel.py- Ejecución paralelacustom.py- Flujos personalizados
cd steps_flows
# Ejecutar ejemplo
python basic.py
python flows_orchestration.py
python parallel.py
python custom.py
🧪 Testing
# Ejecutar todos los tests
pytest
# Con cobertura
pytest --cov=navegador_automate
# Test específico
pytest tests/test_factory.py -v
📚 Documentación Completa
- TAREA 1: Browser + Factory + Drivers
- TAREA 2: FlowDefinition + Executor
- TAREA 3: FlowOrchestrator
- TAREA 4: Flujos + Scripts
- TAREA 5: Setup + Docs + CI/CD
📄 Licencia
Este proyecto está bajo la licencia MIT. Ver LICENSE para más detalles.
👤 Autor
- LJD-UwU - Desarrollo inicial
Made with ❤️ by LJD-UwU
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
navegador_automate-0.1.2.tar.gz
(23.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters