Визначте назви вікон, груп та текстових полів Mac OS X для використання в AppleScript


8

У мене є Applescript, в якому я хочу встановити значення текстових полів Nameта Passwordвікна, що належать до процесу SecurityAgent.

Він схожий на наступне:

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 

Хоча мій сценарій також посилається на процес SecurityAgent, питання, про яке йдеться, саме те, що спливає, коли ви закриваєте OS X, а інший користувач входить у систему. SecurityAgentЗ'являється вікно з проханням ввести ім'я користувача та пароль адміністратора, щоб завершити закрити процес. Я не знаю, як посилатися на текстові поля у вказаному вікні.

Моє запитання: як я дізнаюся назву цих текстових полів, групу, до якої вони належать, і вікно, до якого вони належать? Чи існує спосіб відображення вікон OS X, щоб я міг посилатися на них у AppleScript? Я не можу ніде знайти інформацію щодо цього.

Відповіді:


9

Одного разу я спробував натиснути кнопку в додатку «Захоплення зображень», і мені знадобилося певний час, щоб знайти саме цю кнопку. Як пояснено в моєму запитанні / відповіді, існує спосіб, використовуючи UIElementInspector . Ви можете завантажити його безкоштовно від Apple (посилання для завантаження знаходиться вгорі по кнопці, пряме посилання тут ).

Це дозволяє зазирнути в елементи інтерфейсу кожного вікна, яке ви парите. Натискання Cmd- F7фіксує його вміст на елементі, на якому ви парите.

введіть тут опис зображення

«Весела» частина - це фактично з'ясування того, як групується вікно та які елементи належать до якого з батьків. Користувач із інтерфейсом браузера, що становить 55 доларів, стверджує, що в цьому краще працює.

Коли ви вручну налагоджуєте AppleScript, і ви знаходитесь в області вікна, ви можете спробувати відгадати свій шлях до окремих елементів, використовуючи команди типу:

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

Вони дадуть вам список, за допомогою якого ви зможете звузити пошук елементів та відповідних назв.


1
+100 за те, щоб повідомити мені про UIElementInspector
Nifle

@slhck - Нічого собі! Яка фантастична відповідь. Це дуже цінується, і я одразу прийму працювати над цим. Цікаво, однак, оскільки я взагалі новачок у AppleScript; Як би я склав UI elementsкоманди?
stefmikhail

1
@Stef Ну, наприклад UI Elements of window "Authenticate" of process .... Просто зробіть це в редакторі AppleScript і подивіться на результати внизу. Я, на жаль, не знайшов більш ефективного способу зробити це.
slhck

@slhck - Ні, ні, це звучить ідеально. І в кінцевому підсумку браузер UI пропонує одномісячну повну пробну функцію, тож я зможу також переконатися. Знову дякую купу.
stefmikhail

@stefmikhail Звичайно, немає проблем! Дайте мені знати, як працює у вас браузер UI, ще не встигли його спробувати!
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.