Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHROME LIBRARY

Documentation

Chrome Library es una implementación de la librería ahk2_lib/Chrome desarrollada por thqby. Proporciona una implementación ligera de automatización de Google Chrome utilizando el ⇱Chrome DevTools Protocol (CDP) mediante WebSocket en ⇱AutoHotkey V2. El objetivo es ofrecer una alternativa minimalista a herramientas como Selenium o Puppeteer, permitiendo:

  • Control directo del navegador
  • Ejecución de JavaScript
  • Navegación avanzada
  • Automatización de formularios
  • Gestión de pestañas

El proyecto se compone de tres clases principales:

1️⃣ ChromeV2

Responsable de la gestión del navegador a nivel HTTP (/json endpoint).

2️⃣ ChromeV2.Page

Encapsula la conexión WebSocket al Chrome DevTools Protocol.

3️⃣ JSWrapper

Simplifica la automatización mediante métodos de alto nivel que encapsulan JavaScript común.

Ejemplo básico

Vamos a crear un automatismo que inicie sesión en una página web de prueba.

Inicializamos nuestra instancia de Chrome Debug. Yo guardaré los datos de la aplicación en el directorio "C:\Temp\ChromeDebug", el resto de los parámetros los podemos dejar por defecto, como el puerto de escucha 9222.

Tip

La primera vez que ejecutemos el debugger de Chrome, nos pedirá configurar el navegador.

chromeManager := ChromeV2(,, ProfilePath := "C:\Temp\ChromeDebug")

Instanciamos el envoltorio de JavaScript que nos permitirá abrir, conectar e interactuar con la página.

loginPage := JSWrapper(chromeManager, "https://the-internet.herokuapp.com/login")

Para mostrar la administración de pestañas, vamos a cerrar la pestaña en blanco que nos abre Chrome.

blankPages := chromeManager.FindPages({url: "chrome://newtab/"}, matchMode := "exact")
chromeManager.ClosePage(blankPages[1], "exact")

Ejecutamos la función predefinida para el inicio de sesión indicando los selectores CSS para el input del usuario y contraseña, y para el mensaje de error en caso de que lo hubiera.

Tip

Para encontrar el selector de un elemento en HTML como un botón, hacemos clic derecho en él, inspeccionar, clic derecho sobre la línea HTML del elemento y "copiar selector".

result := loginPage.Login(selectorUserInput := "#username"
    , selectorPasswordInput := "#password"
    , selectorLoginButton := "button[type='submit']"
    , selectorErrorOutput := "#flash.error"
    , userName := "tomsmith"
    , password := "SuperSecretPassword!"
)
if (result)
    MsgBox("Login exitoso.")
else
    MsgBox("Error de autenticación.")

Y por supuesto, podemos ejecutar instrucciones JS directamente.

loginPage.WaitForEvaluate('document.querySelector("#content > div > a > i").click()') ; hace clic en logout

¡Pruébalo en tu script!

Así de fácil es automatizar la mayoría de páginas web. La clase JSWrapper te facilita las funciones esenciales para las interacciones HTML que necesitarás. Siéntete libre de modificarla a conveniencia, pero antes échale un vistazo a la documentación de clases.

About

Librería documentada de AutoHotKet V2 para la automatización de Google Chrome.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages