La connection es un error no válido al ejecutar Applescript y Safari

El siguiente manuscrito espera que se cargue una página antes de continuar con la parte de la secuencia de commands do javascript "document.body.innerText" . Parece funcionar muy bien, excepto por una cosa. Si Safari se está ejecutando pero no hay ninguna window abierta actualmente, ejecutar este script da como resultado

error "Safari recibió un error: la connection no es válida". número -609

  • ¿Por qué sigo perdiendo mis 'sustituciones de text'?
  • Use el directory Inicio como escritorio en Yosemite
  • Configurar enlaces de teclas de Corsair Vengeance K70 para trabajar con OS X
  • Mi Mac se encendería pero se quedaría atascada en la pantalla blanca al iniciarse después de la campanada
  • Opciones en una Mac para un sistema de files comprimible y escribible?
  • Como parte de "anularlo desde la órbita", ¿es seguro volver a instalar el sistema operativo mediante la recuperación?
  • Sin embargo, si ejecuto esto cuando Safari está cerrado, inicia Safari, va a la URL especificada y una vez que la página se carga, ejecuta la parte javascript. No entiendo por qué se produce un error si Safari se está ejecutando sin windows 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 source as text parte del source as text del script. Intenté cambiar la length of (source as text) is not 0 para repeat until name is "example domain" pero el error aún ocurre si no hay windows abiertas y Safari se está ejecutando.

  • Safari 8.0.2 agrega www a ciertos dominios, ¿cómo puedo deshabilitar esto?
  • Haga que el command de terminal use ambos núcleos de CPU
  • Imágenes cinputs en safari
  • Conseguir que Silverlight funcione en Mac OS X Yosemite
  • El terminal "último" de OSX no muestra más inicios de session antes de hoy
  • Reemploop para aislador
  • One Solution collect form web for “La connection es un error no válido al ejecutar Applescript y Safari”

    Necesita intercambiar la position de la línea de código activate con if not (exists document 1) then reopen línea de código .

    Ejemplo:

     tell application "Safari" if not (exists document 1) then reopen activate 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 

    La captura de pantalla del Editor de scripts, a continuación, se ejecutó con Safari abierto y sin windows abiertas.

    Ventana Script Editor

    Primero tuve que marcar "[√] Mostrar el menu de Desarrollo en la barra de menu" (Safari> Preferences …> Avanzado) y luego en el menu Desarrollar, hacer clic en "Permitir JavaScript desde Apple Events". Luego copié y pegué su código AppleScript en el Editor de secuencias de commands, hice clic en el button Ejecutar el script y se ejecutó sin error y devolvió el text de la página web http://example.com . Sin embargo, Safari estaba cerrado cuando ejecuté el script la primera vez.

    Después de volver a leer su pregunta, pude reproducir el error al abrir Safari sin abrir ninguna window. Luego miré más detenidamente su código y noté que había sido activate antes ( if not (exists document 1) then reopen y if not (exists document 1) then reopen debe activate para evitar el error.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).