Вопрос

Я не уверен, что это выполнимо с помощью AppleScript и / или Automator ... но я хотел бы иметь возможность:

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

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

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

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

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

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

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

ТИА

Это было полезно?

Решение

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

Виртуальный ввод

Другие советы

tell application "###"

activate

end tell


tell application "System Events"

tell process "###"

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

end tell

end tell

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

Поместите это в applescript, кстати

ПРИМЕР:

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

удалите двойные пробелы, ЗА ИСКЛЮЧЕНИЕМ ПРОМЕЖУТКОВ МЕЖДУ END TELL И TELL APPLICATION "СИСТЕМНЫЕ СОБЫТИЯ".

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

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

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

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

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

Действительно, сценарии пользовательского интерфейса хрупки и привередливы, но вы могли бы взглянуть на Страница сценариев графического интерфейса AppleScript

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top