1 votos

Comprobación del texto de los botones con applescript

Estoy tratando de automatizar CCleaner, hasta ahora puedo iniciar la aplicación y haga clic en el botón que se inicia el trabajo de limpieza, sin embargo estoy confiando en un delay para determinar cuándo debo pasar a la siguiente parte del script.

tell application "/Applications/CCleaner.app" to activate

tell application "System Events"
    tell application process "CCleaner"
        click button "Run Cleaner" of window 1
        delay 10
    end tell
end tell

No me gusta especialmente este enfoque y preferiría detectar cuando CCleaner termina de ejecutarse (puede ser mucho antes o después del retraso de 10 segundos).

Mientras CCleaner está inactivo, el texto del botón es "Ejecutar limpiador"; cuando CCleaner está activo, el texto del botón es "Cancelar". ¿Puede alguien decirme cómo puedo comprobar el texto del botón? Si sé cómo hacerlo puedo hacer algo como esto:

tell application "/Applications/CCleaner.app" to activate

tell application "System Events"
    tell application process "CCleaner"
        click button "Run Cleaner" of window 1
        delay 10
    end tell
end tell

repeat
    # ?
    # ? if button text is "Run Cleaner" then exit repeat
    # ?
    delay 1
end repeat

# do more stuff

0voto

Bibou Puntos 520

Puede comprobar cada botón de la ventana y esperar hasta que uno se titula como usted desea :

property btnTitle : "Run Cleaner"

set btnFound to false

tell application "/Applications/CCleaner.app" to activate

tell application "System Events"
    tell application process "CCleaner"
        click button btnTitle of window 1
        delay 1

        -- Start checking every seconds if window 1 contains a button titled "Run Cleaner"      
        repeat while not btnFound
            repeat with btn in buttons of window 1
                try -- Some buttons don't have title which would return an error if not in try
                    if (title of btn is btnTitle) then
                        set btnFound to true
                    end if
                end try
            end repeat
            delay 1
        end repeat

    end tell
end tell

if btnFound then
    -- Do more stuff
end if

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