AppleScript или Automator, чтобы нажимать на меню в приложении? - PullRequest
5 голосов
/ 21 января 2010

Я не уверен, выполнимо ли это через AppleScript и / или Automator… но я бы хотел:

а) запустить приложение (я знаю, что это можно сделать довольно легко с помощью AppleScript или Automator)

b) после запуска приложения используйте AppleScript или Automator для выбора определенных пунктов меню.

например. Я хотел бы запустить Excel 2008 (у меня есть домашняя / студенческая версия, предварительно не настроенная для Automator), а затем нажать меню «Файл» и нажать «открыть».

Есть ли какие-нибудь указатели на то, куда идти / искать, как выбирать пункты меню, подобные этому (или, если вообще возможно, вообще)?

Вы можете «сортировать» это, используя функцию записи Automator, но запись очень хрупкая.

Я бы предпочел использовать AppleScript, чтобы просто получить «массив», который содержит каждый элемент меню для приложения, а затем программно щелкнуть по 0-му пункту меню в моем массиве… и т. Д. и т.д.

Возможно ли это?

ТИА

Ответы [ 4 ]

4 голосов
/ 30 июня 2012
tell application "###"

activate

end tell


tell application "System Events"

tell process "###"

click menu item "^^^" of menu "$$$" of menu bar 1

end tell

end tell

Поместите ваше приложение для ### и поместите ваш пункт меню для ^^^ и поместите ваше меню (файл, редактирование, просмотр и т. Д.) На $$$. Капитализация имеет значение.

Поместите это в applecript между прочим

Пример:

tell application "iTunes"

activate

end tell


tell application "System Events"

tell process "iTunes"

click menu item "as list" of menu "view" of menu bar 1

end tell

end tell

удалить двойные пробелы ЗА ИСКЛЮЧЕНИЕМ ЗАКОНЧЕНИЯ И РАССКАЗАНИЯ ПРИЛОЖЕНИЯ "СОБЫТИЯ СИСТЕМЫ"

1 голос
/ 21 января 2010

Скрипты пользовательского интерфейса - переменчивый зверь. Он хрупок и часто чувствителен ко многим вещам, не зависящим от вас, таким как неожиданные диалоги (из других приложений), изменения в системном шрифте или языке, действия пользователя. Не говоря уже об изменениях в пользовательском интерфейсе приложения в разных версиях.

Гораздо надежнее использовать общение напрямую с приложением через его AppleScript API. Это как раз и есть цель AppleScript. Вы всегда можете увидеть действия и данные, которые приложение может предоставить через AppleScript, с помощью пункта меню «Открыть словарь ...» в AppleScript Editor.app (выберите приложение, которое вы хотите написать в диалоговом окне файла). Вместо того, чтобы имитировать щелчок мышью по меню, вы вызываете действие, которое элемент меню запускает непосредственно через AppleScript.

Конечно, не все приложения имеют полный (или даже любой) API-интерфейс AppleScript. Excel, однако, имеет отличную поддержку AppleScript, если это ваша цель.

Если вы действительно пытаетесь провести тестирование пользовательского интерфейса, я рекомендую вам начать с других вариантов:

  1. Тестирование модели (аналог сценариев модели приложения через AppleScript). Фактически, если вы включите API-интерфейс AppleScript в свое приложение, вы также можете автоматизировать его тестирование.
  2. Используйте Google Toolbox для Mac дополнения модульного тестирования (или разверните свое собственное) для программной отправки событий мыши или клавиатуры в ваше приложение.
  3. Используйте Instruments.app для записи последовательности пользовательского интерфейса. Запись инструментов цельная (я не использовал функцию записи Automator), и вы получаете все остальные плюсы инструментов.
0 голосов
/ 17 февраля 2011

Действительно, сценарии пользовательского интерфейса хрупки и привередливы, но вы можете взглянуть на страницу Apple AppleScript GUI Scripting

0 голосов
/ 21 января 2010

Я не знаю о получении массива, но похоже, что он может работать для отправки щелчков мыши и т. Д .:

VirtualInput

...