AppleScript - GUI Scripting e impostazione casella di controllo, pulsante di opzione e valori dei campi

2

Sto lavorando su un AppleScript di scripting della GUI che, per il documento aperto di FileMaker Pro Advanced, va al menu File e seleziona la finestra di dialogo Opzioni file, quindi imposta qualche pulsante di spunta / pulsante radio e valori dei campi.

La finestra di dialogo ha il seguente aspetto:

Desiderocheilmioscriptfacciaquantosegue:

  1. selezionalacaselladicontrollo"Accedi utilizzando:" se non è già selezionata
  2. seleziona il pulsante di opzione "Nome account e password" se non è già selezionato
  3. Inserisci un valore nel campo "Account:"
  4. Inserisci un valore nel campo "Password:"
  5. Fai clic sul pulsante OK

Ho aperto la finestra di dialogo, ma non riesco ad andare oltre la casella di controllo - questa è la mia prima volta con lo scripting GUI. Sto usando OS X Yosemite 10.10.3.

Ecco il mio script:

-- check that GUI Scripting is available

GUIScripting_status()


-- bring FileMaker Pro Advanced to the front

tell application "FileMaker Pro Advanced"
    activate
end tell


setfmFileOptions()

on click_button(app_name, button_name)
    try
        tell application app_name
            activate
        end tell
        tell application "System Events"
            tell process app_name
                click button button_name of front window
            end tell
        end tell
        return true
    on error error_message
    end try
end click_button


on do_menu(app_name, menu_name, menu_item)
    try
        -- bring the target application to the front
        tell application app_name
            activate
        end tell
        tell application "System Events"
            tell process app_name
                tell menu bar 1
                    tell menu bar item menu_name
                        tell menu menu_name
                            click menu item menu_item
                        end tell
                    end tell
                end tell
            end tell
        end tell
        return true
    on error error_message
        return false
    end try
end do_menu


on setfmFileOptions()

    -- choose the Developer Utilities menu item from the Tools menu of FileMaker Pro Advanced

    do_menu("FileMaker Pro Advanced", "File", "File Options...")


    -- click the "Log in using" checkbox:

    if (exists checkbox "Log in using:" of window 1) is true then
 click checkbox "Log in using:" of window 1
 end if


end setfmFileOptions


on GUIScripting_status()
    -- check to see if assistive devices is enabled
    tell application "System Events"
        set UI_enabled to UI elements enabled
    end tell
    if UI_enabled is false then
        tell application "System Preferences"
            activate
            set current pane to pane id "com.apple.preference.universalaccess"
            display dialog "This script utilizes the built-in Graphic User Interface Scripting architecture of Mac OS x which is currently disabled." & return & return & "You can activate GUI Scripting by selecting the checkbox \"Enable access for assistive devices\" in the Universal Access preference pane." with icon 1 buttons {"Cancel"} default button 1
        end tell
    end if
end GUIScripting_status

Non compilerà e restituirà questo errore la riga "if (esiste la checkbox" Accedi usando: "della finestra 1) è vera allora":

    
posta user982124 01.07.2015 - 15:01
fonte

1 risposta

1

prova questo piccolo cambiamento di sintassi:

on setfmFileOptions(app_name)

    -- choose the Developer Utilities menu item from the Tools menu of FileMaker Pro Advanced

    do_menu(app_name, "File", "File Options...")


    -- click the "Log in using" checkbox:
    tell application "System Events"
        tell process app_name
            repeat until (exists checkbox "Log in using:" of tab group 1 of window 1)
                delay 1
            end repeat
            click checkbox "Log in using:" of tab group 1 of window 1
        end tell
    end tell
end setfmFileOptions

Non puoi usare la finestra 1 senza dire in quale finestra del processo 1 si trovi. Ora dovrai specificare nome_app come parametro.

Quindi, come questo:

setfmFileOptions("FileMaker Pro Advanced")
    
risposta data 01.07.2015 - 18:08
fonte

Leggi altre domande sui tag