Identifique os nomes de janela, grupo e campo de texto do Mac OS X para usar no AppleScript

7

Eu tenho um Applescript no qual desejo definir o valor dos campos de texto Name e Password de uma janela pertencente ao processo SecurityAgent .

É semelhante ao seguinte:

tell window "Authenticate" of process "SecurityAgent"
    tell group 1
        set value of text field 1 to "king"
        set value of text field 2 to "king1"
    end tell
    click button "OK" of group 2
end tell 

Enquanto meu script também está se referindo ao processo SecurityAgent , a janela em questão é aquela que aparece quando você encerra o OS X, e outro usuário está logado. A janela SecurityAgent aparece solicitando o nome de usuário e senha do administrador para concluir o processo de desligamento. Eu não sei como se referir aos campos de texto na referida janela.

Minha pergunta é: como faço para descobrir o nome desses campos de texto, o grupo ao qual pertencem e a janela a que pertencem? Existe um método de mapeamento das janelas do OS X para que eu possa me referir a elas no AppleScript? Eu não consigo encontrar informações sobre isso em qualquer lugar.

    
por stefmikhail 16.10.2011 / 00:15

1 resposta

8

Eu uma vez tentei clicar em um botão no aplicativo Captura de Imagem e demorei um pouco para encontrar esse botão em particular . Como explicado na minha pergunta / resposta, há uma maneira de usar o UIElementInspector . Você pode baixá-lo gratuitamente da Apple (o link de download está no topo em um botão, link direto aqui ).

Ele permite que você dê uma olhada nos elementos da interface do usuário de cada janela em que você está passando. Pressionar Cmd - F7 bloqueia seu conteúdo para o elemento que você está passando.

Aparte"divertida" é, na verdade, descobrir como a janela é agrupada e quais elementos pertencem a qual pai. O aplicativo de $ 55 Navegador de interface do usuário alega fazer um trabalho melhor com isso.

Quando você depura manualmente o AppleScript e está no escopo de uma janela, é possível tentar adivinhar os elementos individuais usando comandos como:

UI elements of window 1
UI elements of splitter group 1 of window 1
UI elements of group 1 of splitter group 1 of window 1

Eles fornecerão uma lista que você pode usar para restringir sua pesquisa de elementos e seus respectivos títulos.

    
por 16.10.2011 / 00:27