El siguiente applecript espera a que se cargue una página antes de continuar con la parte do javascript "document.body.innerText"
del script. Parece funcionar muy bien, excepto por una cosa. Si Safari se está ejecutando pero actualmente no hay ninguna ventana abierta, la ejecución de este script da como resultado
error "Safari recibió un error: la conexión no es válida". número -609
Sin embargo, si ejecuto esto cuando Safari está cerrado, inicia Safari, va a la URL especificada y, una vez que se carga la página, ejecuta la parte de javascript. No entiendo por qué se produce un error si Safari se está ejecutando sin ventanas abiertas.
tell application "Safari"
activate
if not (exists document 1) then reopen
tell front document
set URL to "http://example.com"
repeat until length of (source as text) is not 0
delay 0.5
end repeat
do javascript "document.body.innerText"
end tell
end tell
El error siempre resalta la parte source as text
del script. Intenté cambiar de length of (source as text) is not 0
a repeat until name is "example domain"
, pero el error aún ocurre si no hay ventanas abiertas y Safari se está ejecutando.