1. AppleScript source
propiedad
Puede intentar utilizar Safari 's source
propiedad, que es ""
hasta que el código HTML se cargue en él (lo que sólo puede hacerse una vez cargada la página). Tenga en cuenta, sin embargo, que esto no implica necesariamente que la página haya sido renderizado :
tell application "Safari"
.
.
repeat while document 1's source = ""
delay 0.5
end repeat
.
.
end tell
El source
se restablece a ""
incluso entre cargas/recargas de páginas.
2. Elemento de interfaz de usuario del botón de recarga
Si quiere saber que una página está cargada y renderizado en pantalla, entonces un método fiable es determinar si el botón de la barra de URL es un botón de "recarga" (página cargada y renderizada), o un botón de "cancelación" (página aún cargando/renderizada):
tell application "System Events" to repeat until exists (buttons of ¬
UI elements of groups of toolbar 1 of window 1 of ¬
process "Safari" whose name = "Reload this page")
delay 0.5
end repeat
3. JavaScript readyState
propiedad
Si tiene Permitir JavaScript desde los eventos de Apple marcado en el Desarrollar y luego se puede acceder al menú readyState
propiedad del document
:
tell application "Safari"
.
.
tell document 1 to repeat
do JavaScript "document.readyState"
if the result = "complete" then exit repeat
delay 0.5
end repeat
.
.
end tell
El document.readyState
La propiedad JavaScript devuelve uno de los cinco valores:
uninitialized
: Todavía no ha empezado a cargar
loading
: Está cargando
loaded
: Se ha cargado
interactive
: Ha cargado lo suficiente y el usuario puede interactuar con él
complete
: Totalmente cargado