Skip to main content

Browser automation library with JSON flow orchestration

Project description

navegador-automate 🚀

Python Version License Tests

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 BrowserFactory
  • flows_orchestration.py - Orquestación con flows_config
  • parallel.py - Ejecución paralela
  • custom.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

📄 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

navegador_automate-0.1.2-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page