J'essaie d'interagir avec une boîte de dialogue d'impression via Applescript.
Ce que je veux émuler, c'est que l'utilisateur définit une valeur dans une liste déroulante spécifique.
Dis que j'ai:
tell application "System Events"
tell process "Preview"
set value of pop up button XXX to YYY
end tell
end tell
Comment connaître le nom XXX? Par exemple, comment distinguer les listes déroulantes "imprimante" et "préréglages"?
J'ai ouvert l'inspecteur d'accessibilité, mais à partir des informations qui y sont affichées, je ne peux pas repérer une référence au nom ou à un autre identifiant unique pour la liste déroulante spécifiée.
J'ai vu beaucoup de gens utiliser des chiffres pour faire référence aux différentes listes déroulantes, mais je ne suis pas sûr que ce soit une bonne pratique. Que se passe-t-il si Apple décide d'échanger l'ordre de deux listes déroulantes à un moment donné?
Toute aide serait appréciée.
Mise à jour :
En utilisant 10.6.8 et inspecteur comme suggéré ci-dessous, j'obtiens ce qui suit:
la source
UI elements
commande d'ici utile: n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescriptRéponses:
MISE À JOUR. cela fonctionnera dans 10.7.x mais 10.6 a les informations sur les éléments.
Les boutons (listes déroulantes) de la feuille d'impression ont une description pour décrire la fonction.
Dans l' inspecteur d'accessibilité ; vous voyez cela lorsque vous passez la souris sur l'élément (bouton). vous pouvez verrouiller la vue de l' inspecteur d'accessibilité avec cmd + F7.
La description sera répertoriée comme AXDescription
Dans le cas des imprimantes, il s'agit d' imprimantes pour préréglages, il s'agit de préréglages
Si vous connaissez l' AXDescription, vous pouvez éviter les chiffres en utilisant quelque chose comme ça. Mais ce n'est pas le seul moyen. Un seul exemple.
Pour que ce qui précède fonctionne dans cet exemple, la feuille d'impression doit être visible avec «Afficher les détails»
Le bouton / menu déroulant a un menu. Vous pouvez donc le sélectionner ou cliquer dessus en vous référant aux éléments de menu du menu du bouton.
Soit par numéro, soit en utilisant son titre / AXTitle.
Vous pouvez raccourcir le code répétitif en utilisant une variable pour le bouton et en l'appelant. Lorsque vous le faites comme mon exemple ci-dessous;
la source
Utilisez l'un des scripts liés dans cette astuce Mac OS X pour trouver la forme d'adresse appropriée: Recherche d'éléments de contrôle et de menu à utiliser dans les scripts d'interface utilisateur AppleScript
IIRC, vous devrez cliquer (cmd est dans les événements système) sur le bouton de menu contextuel avant de pouvoir sélectionner un élément de menu dans son menu.
la source
Pour ceux qui se demandent, il semble qu'un endroit où trouver l'inspecteur d'accessibilité dans 10.7 est:
/Applications/Xcode.app/Contents/Applications
la source
J'ai récemment rédigé mon flux de travail pour les scripts d'interface utilisateur dans AppleScript .
En bref, le composant clé qui a rendu les choses beaucoup, beaucoup plus faciles pour moi a été d'apprendre que la
UI Elements
commande dans AppleScript renvoie une liste des termes que l'éditeur AppleScript veut voir pour appeler les éléments d'interface utilisateur. Associez-le aux termes vus de l'inspecteur d'accessibilité (qui sont souvent légèrement différents) pour créer un script de travail.la source