Saltar al contenido

¿Cómo espero a que Google Chrome cargue una página web antes de continuar en AutoHotkey?

Si hallas algún problema con tu código o trabajo, recuerda probar siempre en un ambiente de testing antes aplicar el código al proyecto final.

Solución:

Si bien la respuesta de Karthik es mejor que un comando de suspensión, y puede funcionar bastante bien para muchos sitios, descubrí que hay algunos problemas que pueden surgir, especialmente si lo usa con bastante frecuencia.

Yo mismo necesitaba una solución confiable, que creo que finalmente encontré. Vaya a Chrome Web Store y agregue la extensión de Google Chrome llamada Control Freak. Esto le permite configurar fácilmente fragmentos de código que se pueden activar en una sola página, un dominio completo o cualquier sitio/página.

Extensión de Chrome Control Freak

Una vez que lo haya cargado, haga clic en el botón de la rueda dentada que ahora tiene para la extensión. Haga clic en la parte superior de la ventana emergente en el contexto/espacio apropiado que necesita para detectar la carga de la página. es decir All

Ahora puede hacer clic en la pestaña Libs. Desplácese hacia abajo hasta jQuery. Puede elegir cualquier versión de la lista que desee, pero elegí la última. Tenga en cuenta que la URL del CDN se agrega en la parte inferior. Ahora, después de hacer clic en el Save botón en la parte inferior, siempre tendrá jQuery disponible en cualquier contexto elegido.

Vuelva a la pestaña de JavaScript y agregue este código, y modifíquelo a su gusto:

jQuery(function() 
  prompt("Diagnostic: Page Status", "loaded");
);

Una vez que haga clic en Guardar, este código se ejecutará en el evento jQuery Ready. ¡Ahora tiene una forma confiable de detectar la carga de la página, que AHK puede usar!

Con esto en su lugar, puede hacer que AutoHotkey espere una ventana cuyo título comience diciendo “La página en”…., que sin duda será nuestro mensaje, precargado con nuestra palabra “cargado”. Puede decirle a AHK que envíe Control+c para copiar eso, luego verifique su valor, o simplemente suponga que, dado que lo vio, es probable que tenga lo que esperaba. El siguiente código AHK puede esperar a que aparezca la ventana emergente (lo que podría hacerse fácilmente con una alerta por cierto).

clipboard=
WinWait, The page at
WinWaitActive
Send ^c
ClipWait
WinClose
; The rest here is entirely optional tooltip code, but can be useful.
tooltip, The diagnostic data provided was: %clipboard%,0,0
sleep, 1000
tooltip

Entonces, optimicémoslo y pongámoslo en una función a la que pueda llamar una y otra vez:

Definición de función:

waitForPageLoad()

  WinWait, The page at
  WinWaitActive
  WinClose

Llamada de función:

waitForPageLoad()

Otros pensamientos..

Ahora he notado que este código se activa incluso en momentos en que la página no se cambia o recarga realmente, como cuando la URL de la página puede cambiar, pero lo codificaron específicamente para que no abandone la página y, por lo general, ves contenido nuevo. allí. Eso es perfecto para mis propósitos, pero esto podría filtrarse configurando algún tipo de variable y verificando si ya se había configurado (dentro del código JavaScript que agregó en Control Freak).

Este es el código que uso para comprobar si la página se ha cargado o no. Comprueba el color en una posición de píxel concreta definida por x,y. Si el color del píxel coincide, la función sale del bucle y regresa al script principal.

Definición de función:

waitForPageLoad(x, y, color)

  Loop
  
    PixelGetColor, Loaded, %x%, %y%
    if Loaded = %color%
      break
  

Llamada de función:

waitForPageLoad(399, 265, "0xE4C2A2")

Puede usar el estado del cursor del mouse de esta manera:

Sleep, 200
while (A_Cursor = "AppStarting" or A_Cursor = "Wait") ; Wait for browser to be ready (page loaded)
    continue
Sleep, 200
while (A_Cursor = "AppStarting" or A_Cursor = "Wait") ; Wait for browser to be ready (page loaded)
    continue

Hago esto dos veces, solo para asegurarme de que un breve cambio de estado del cursor del mouse no devuelva datos incorrectos.

Eres capaz de confirmar nuestro cometido añadiendo un comentario y puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *