1 votos

AppleScript de Automator: Sólo se hace clic en la casilla de verificación si está desmarcada

Estoy creando un flujo de trabajo de Automator para hacer clic en la casilla de verificación Habilitar esta cuenta en el panel de preferencias de Contactos. He utilizado Watch Me Work en Automator para facilitar la mayor parte del proceso. La automatización funciona bien, pero quiero añadir código para que sólo se marque la casilla si está desmarcada. He buscado una pregunta similar, pero el código del ejemplo no se parece en nada al código que veo en Automator. Soy un programador muy principiante, así que cualquier ayuda sería muy apreciada.

on run {input, parameters}
-- Click the “Enable this account” checkbox.
delay 0.441495
set timeoutSeconds to 2.000000
set uiScript to "click checkbox \"Enable this account\" of tab group 1 of group 1 of group 1 of window \"Accounts\" of application process \"Contacts\""
my doWithTimeout( uiScript, timeoutSeconds )
return input
end run

on doWithTimeout(uiScript, timeoutSeconds)
    set endDate to (current date) + timeoutSeconds
    repeat
        try
            run script "tell application \"System Events\"
" & uiScript & "
end tell"
            exit repeat
        on error errorMessage
            if ((current date) > endDate) then
                error "Can not " & uiScript
            end if
        end try
    end repeat
end doWithTimeout

0voto

user3439894 Puntos 5883

Lo siguiente ejemplo AppleScript código asume que sólo hay una cuenta en Contactos > Preferencias > Cuentas y sólo se pulsará el botón Habilitar esta cuenta casilla de verificación si es No se ha comprobado y luego cierra las preferencias ventana :

<strong>Nota: </strong>El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>se probó bajo <strong>MacOS High Sierra </strong>y puede ser necesario modificarlo para <em>antes/después </em>versiones de <strong>MacOS </strong>.

tell application "Contacts" to activate
tell application "System Events"
    repeat while not (exists window 1 of application process "Contacts")
        delay 0.1
    end repeat
    tell application process "Contacts"
        click menu item "Preferences…" of menu 1 of menu bar item "Contacts" of menu bar 1
        repeat until (exists button "Accounts" of toolbar 1 of window 1)
            delay 0.1
        end repeat
        click button "Accounts" of toolbar 1 of window 1
        repeat while not (exists checkbox "Enable this account" of tab group 1 of group 1 of group 1 of window 1)
            delay 0.1
        end repeat
        if not (value of checkbox "Enable this account" of tab group 1 of group 1 of group 1 of window 1 as boolean) then
            click checkbox "Enable this account" of tab group 1 of group 1 of group 1 of window 1
        end if
        keystroke "w" using command down
    end tell
end tell

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