Estou tentando interagir com uma caixa de diálogo de impressão via Applescript.
O que eu quero emular é o usuário definindo um valor em um menu suspenso específico.
Diga que tenho:
tell application "System Events"
tell process "Preview"
set value of pop up button XXX to YYY
end tell
end tell
Como devo saber o nome XXX? Por exemplo, como eu distinguiria entre as listas suspensas "impressora" e "predefinições"?
Eu abri o Inspetor de acessibilidade, mas pelas informações exibidas lá, não consigo identificar uma referência ao nome ou algum outro identificador exclusivo para o menu suspenso especificado.
Já vi muitas pessoas usando números para se referir a diferentes menus suspensos, mas não tenho certeza se isso é uma boa prática. O que acontece se a Apple decidir trocar a ordem de duas listas suspensas em algum momento?
Qualquer ajuda seria apreciada.
ATUALIZAÇÃO :
Usando 10.6.8 e inspector, como sugerido abaixo, obtenho o seguinte:
fonte
UI elements
comando aqui útil também: n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescriptRespostas:
ATUALIZAR. isso funcionará no 10.7.x, mas 10.6 possui as informações do elemento.
Os botões (suspensos) na Folha de impressão têm Descrição para descrever a função.
Em inspector de acessibilidade ; você vê isso ao passar o mouse sobre o elemento (botão). você pode bloquear a exibição do inspetor de acessibilidade com cmd + F7.
A descrição será listada como AXDescription
Nos casos das impressoras, é Impressoras para predefinições, é Predefinições
Se você conhece o AXDescription, pode evitar os números usando algo como isto. Mas esse não é o único caminho. Apenas um exemplo.
Para que o acima funcione neste exemplo, a Folha de impressão deve estar visível junto com 'Mostrar detalhes'
O botão / lista suspensa possui um menu. Para que você possa selecionar ou clicar nele, consulte o itens de menu do menu do botão.
Por número ou usando seu título / AXTitle.
Você pode reduzir o código repetitivo usando uma variável para o botão e chamando isso. Ao fazer isso como no meu exemplo abaixo;
fonte
Use um dos scripts vinculados nesta dica do Mac OS X para encontrar a forma apropriada de endereço: Localizando itens de controle e de menu para uso em scripts da interface do usuário AppleScript
IIRC, você precisará clicar em (cmd está em System Events) no botão de menu pop-up antes de selecionar um item de menu no menu.
fonte
Para quem se pergunta, parece que um local onde encontrar o Inspetor de Acessibilidade na versão 10.7 é:
/Applications/Xcode.app/Contents/Applications
fonte
Recentemente, escrevi meu fluxo de trabalho para scripts de interface do usuário no AppleScript .
Em resumo, o principal componente que facilitou muito as coisas para mim foi aprender que o
UI Elements
comando no AppleScript retorna uma lista dos termos que o AppleScript Editor deseja ver para chamar os Elementos da UI. Faça a interface com os termos vistos no Accessibility Inspector (que geralmente são um pouco diferentes) para criar um script de trabalho.fonte