Identifique os nomes de janelas, grupos e campos de texto do Mac OS X para uso no AppleScript

8

Eu tenho um Applescript no qual desejo definir o valor dos campos de texto Namee Passwordde 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 se refere ao processo SecurityAgent, a janela em questão é exibida quando você desliga o OS X e outro usuário está conectado. A SecurityAgentjanela é exibida solicitando o nome de usuário e a senha do administrador para concluir a instalação. encerre o processo. Não sei como me referir aos campos de texto na referida janela.

Minha pergunta é: como descubro o nome desses campos de texto, o grupo ao qual eles pertencem e a janela a que pertencem? Existe um método de mapeamento das janelas do OS X para que eu possa consultá-las no AppleScript? Não consigo encontrar informações sobre isso em nenhum lugar.

stefmikhail
fonte

Respostas:

9

Uma vez tentei clicar em um botão no aplicativo Image Capture e demorei um pouco para encontrar esse botão específico. Conforme explicado na minha pergunta / resposta, existe uma maneira de usar o UIElementInspector . Você pode baixá-lo gratuitamente na Apple (o link para download está no topo de um botão, link direto aqui ).

Ele permite que você espreite os elementos da interface do usuário de cada janela que está passando. Pressionar Cmd- F7bloqueia seu conteúdo no elemento que você está passando.

insira a descrição da imagem aqui

A parte "divertida" é descobrir como a janela é agrupada e quais elementos pertencem a qual pai. O navegador da interface do usuário do aplicativo, de US $ 55, afirma fazer um trabalho melhor nisso.

Quando você está depurando manualmente o AppleScript e está no escopo de uma janela, pode tentar adivinhar o caminho para 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

Isso fornecerá uma lista que você pode usar para restringir sua pesquisa por elementos e seus respectivos títulos.

slhck
fonte
11
+100 por me informar sobre o UIElementInspector
Nifle 15/10
@slhck - Uau! Que resposta fantástica. É muito apreciado e começarei a trabalhar imediatamente nisso. Curioso, no entanto, como eu sou novo no AppleScript em geral; Como eu faria os UI elementscomandos?
2131111
11
@ Stef Bem, por exemplo UI Elements of window "Authenticate" of process .... Faça isso no editor AppleScript e veja os resultados na parte inferior. Infelizmente, não encontrei uma maneira mais eficiente de fazer isso.
slhck 15/10
@ Sllck - Não, não, isso soa perfeito. E o UI Browser oferece uma avaliação completa de um mês, para que eu também possa experimentar. Mais uma vez, muito obrigado.
stefmikhail
@stefmikhail Claro, não há problema! Deixe-me saber como o Navegador de interface do usuário funciona para você, ainda não teve tempo para experimentá-lo!
slhck