1. AppleScript source
propiedad
Puedes intentar usar la propiedad source
de Safari , que es ""
hasta que se cargue el código HTML (que solo se puede hacer una vez que se carga la página). Sin embargo, tenga en cuenta que esto no implica necesariamente que la página se haya procesado :
tell application "Safari"
.
.
repeat while document 1's source = ""
delay 0.5
end repeat
.
.
end tell
La propiedad source
se restablece a ""
incluso entre cargas / recargas de página.
2. Botón de recarga elemento de la interfaz de usuario
Si desea saber que una página está cargada y representada en la pantalla, un método confiable es determinar si el botón en la barra de URL es un botón "recargar" (página cargada y renderizada ), o un botón "cancelar" (la página aún se está cargando / renderizando):
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 Apple Events marcado en el menú Desarrollar , entonces puede acceder a la propiedad readyState
de 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
La propiedad document.readyState
JavaScript devuelve uno de cinco valores:
-
uninitialized
: aún no se ha iniciado la carga
-
loading
: se está cargando
-
loaded
: se ha cargado
-
interactive
: Se ha cargado lo suficiente y el usuario puede interactuar con él
-
complete
: Completamente cargado