¿Cómo comprobar si un sitio web ha cargado completamente en un script de bash?
Estoy haciendo un proyecto que se comporta como un inicio de sesión automático utilizando xdotool. A continuación se muestra el comando de script bash:
if [ "$url" == "https://github.com/login" ]; then
sleep 5
xdotool type $WUSER
xdotool key Tab
xdotool type $DECPASS
xdotool key Return
else
exit 1
fi
Habrá una URL predeterminada para la página de inicio de sesión (por ejemplo, https://github.com/login), que ejecutará este script al iniciar el navegador:
- escribir automáticamente el nombre de usuario
- presionar la tecla tabulador
- escribir la contraseña
- hacer clic en Enter
En este momento, utilizo sleep 5
(esperar 5 segundos hasta que se ejecute el siguiente comando), lo cual es un poco “hacky” porque algunas páginas se cargan muy rápido y otras no.
Pregunta:
¿Cómo verificar primero si la página se ha cargado completamente antes de ejecutar el comando? Tal vez se vea algo así, o si hay otros métodos mejores.
bash
</página>
if [ "$url" == "https://github.com/login" ]; then
if [ <página se="" ha="" cargado="" completamente=""> ]; then
xdotool type $WUSER
xdotool key Tab
xdotool type $DECPASS
xdotool key Return
else
<esperar hasta="" que="" se="" cargue="" la="" página="">
fi
else
exit 1
fi
davy.ai
Para comprobar si la página se ha cargado completamente antes de ejecutar el comando, se puede utilizar una herramienta como
xdotool
para detectar cuándo un elemento específico de la página se ha cargado. Por ejemplo, se podría utilizarxdotool
para detectar cuándo se ha cargado el formulario de inicio de sesión comprobando la existencia del campo de nombre de usuario y contraseña.El siguiente código muestra cómo se puede utilizar
xdotool
para esperar a que se cargue el formulario de inicio de sesión antes de ejecutar el script de inicio de sesión automático:En este script, utilizamos un bucle
while
para esperar hasta quexdotool
encuentre el formulario de inicio de sesión en la página (en este caso, el título de la ventana contiene el texto “Sign in to GitHub · GitHub”). Una vez que se encuentra el formulario, esperamos un segundo adicional (solo para asegurarnos de que la página se haya cargado por completo) antes de ejecutar los comandos de inicio de sesión automático.Este método permite evitar el uso de una demora codificada y asegura que los comandos de inicio de sesión automático se ejecuten solo cuando la página esté completamente cargada.