2 votos

AppleScript - Guión de la interfaz gráfica de usuario y configuración de valores de casillas de verificación, botones de radio y campos

Estoy trabajando en un AppleScript de guiones de GUI que, para el documento abierto de FileMaker Pro Advanced, irá al menú Archivo y seleccionará el cuadro de diálogo Opciones de archivo, y luego establecerá algunos valores de casillas de verificación/botones de radio y campos.

El cuadro de diálogo tiene el siguiente aspecto:

enter image description here

Me gustaría que mi script hiciera lo siguiente:

  1. marque la casilla "Iniciar sesión con:" si no está ya seleccionada
  2. seleccione el botón de opción "Nombre de cuenta y contraseña" si no está ya seleccionado
  3. Introduzca un valor en el campo "Cuenta:".
  4. Introduzca un valor en el campo "Contraseña:".
  5. Haga clic en el botón OK

He conseguido que se abra el cuadro de diálogo, pero no soy capaz de pasar de la configuración de la casilla de verificación - esta es mi primera vez con la secuencia de comandos GUI. Estoy usando OS X Yosemite 10.10.3.

Aquí está mi 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

No compila y devuelve este error la línea " if (exists checkbox "Log in using:" of window 1) is true then":

enter image description here

1voto

William T Froggard Puntos 2862

Prueba este pequeño cambio de sintaxis:

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

No puedes usar la ventana 1 sin decir en qué proceso está la ventana 1. Ahora tendrás que especificar app_name como parámetro.

Entonces, así:

setfmFileOptions("FileMaker Pro Advanced")

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