1. AppleScript source
propriété
Vous pouvez essayer d'utiliser Safari 's source
la propriété, qui est ""
jusqu'à ce que le code HTML y soit chargé (ce qui ne peut être fait qu'une fois la page chargée). Notez, cependant, que cela n'implique pas nécessairement que la page a été rendu :
tell application "Safari"
.
.
repeat while document 1's source = ""
delay 0.5
end repeat
.
.
end tell
El source
est réinitialisée à ""
même entre les chargements/rechargements de pages.
2. Élément d'interface utilisateur du bouton de rechargement
Si vous voulez savoir qu'une page est chargée et rendu à l'écran, une méthode fiable consiste à déterminer si le bouton dans la barre d'URL est un bouton "reload" (page chargée et rendue), ou un bouton "cancel" (page toujours en cours de chargement/rendu) :
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
propriété
Si vous avez Autoriser JavaScript à partir des événements Apple coché dans le Développer vous pouvez alors accéder au menu readyState
de l 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 propriété JavaScript renvoie l'une des cinq valeurs suivantes :
-
uninitialized
: N'a pas encore commencé à charger
-
loading
: Est-ce que le chargement
-
loaded
: A été chargé
-
interactive
: Il est suffisamment chargé et l'utilisateur peut interagir avec lui.
-
complete
: Entièrement chargé