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? Кажется, я нигде не могу найти информацию об этом.

1 ответ1

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

Это даст вам список, который вы можете использовать, чтобы сузить поиск элементов и их соответствующих названий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .