1 votos

Error de Applescript: "La conexión no es válida" cuando la aplicación se cierra

Estoy trabajando en un código para comprobar las pestañas/ventanas actualmente abiertas en mis navegadores web instalados, así:

on checkbrowser()

    if application "Safari" is running then
        tell application "Safari"
            set windowList to (every window)
            # do some stuff
        end tell
    end if

end checkbrowser

repeat while 1 = 1
    checkbrowser()
end repeat

Esto funciona perfectamente mientras Safari permanece abierto. Si Safari se cierra alguna vez mientras se ejecuta el script, recibo este mensaje:

error "Safari obtuvo un error: La conexión no es válida". número -609

El problema tiene que ver con (every window) . Si Safari se cierra, ¿no debería el if impedir que el script llegue a esa línea de código? Pero ahí es donde arroja el error.

¿Alguna idea? Gracias.

--
Edición: He encontrado la solución aquí .

0 votos

Por favor, escriba la solución como respuesta.

3voto

randm Puntos 6

La clave era poner el código problemático dentro de un try bloque. Así:

    if application "Safari" is running then
        tell application "Safari"
            try
                set windowList to (every window)
                # do some stuff
            on error number -609
            end try
        end tell
    end if

De esta manera, el script ignora el error -609 y simplemente sigue adelante, que es lo que quería.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X