Продолжим наше знакомство с Automator и рассмотрим такое понятие, как макросы на примере создания программы для имитации пользовательской работы за компьютером.

Test 2

Предпосылка для такого приложения была очень простая — нашему сайту необходимо решение, которое можно было бы использовать для тестирования автономности ноутбуков в офисном режиме, то есть при сравнительно невысокой системной нагрузке.

Для начала определим задачи скрипта. Пусть они будут следующие:

  • запустить Safari
  • открыть сайт https://macosworld.ru/
  • открыть сайт http://freshmac.ru/
  • закрыть Safari
  • отрыть TexEdit
  • набрать текст
  • сохнить документ
  • закрыть TexEdit

Достичь поставленных задач можно несколькими способами, но наиболее удобный и простой способ — записать макрос. В данном случае под макросом мы понимаем запись любых пользовательских действий, которые он выполняет при помощи клавиатуры и мыши, а значит, нам абсолютно не нужны какие-либо специализированные знания в AppleScript. Кроме того, этот способ полностью эмулирует реальную работу пользователя за компьютером.

Алгоритм, который мы сейчас рассмотрим, может иметь широкое применение и не ограничен поставленными задачами. Записав макрос, вы можете автоматизировать любое действие на компьютере, самае тяжелая часть этого процесса — определить ту часть вашей работы, которая действительно нуждается в этом.

Запускаем Automator и в мастере выбираем пункт Application (приложение). Делается это для того, чтобы наш тест можно было копировать и выполнять на любом Маке.

Попав в рабочее окно Application, мы можем начинать запись макроса. Для этого нажмите кнопку Record справа на панели инструментов Automator. После ее нажатия, окно Automator будет скрыто с экрана, и вместо него вы увидите маленькое окошко Recording с кнопкой Stop. Это означает, что все наши действия фиксируются для последующего принудительного воспроизведения.

После нажатия на кнопку Record проделаем следующее:

  • щелкнем на иконку Safari в Dock
  • введем адрес macosworld.ru в соответвующей строке
  • нажмем Enter
  • пожождем полной загрузки сайта
  • нажмем cmd+t (открытие новой вкладки)
  • введем адрес freshmac.ru
  • нажмем Enter
  • дождемся полной загрузки сайта
  • нажмем cmd+q (закрываем Safari)

После нажатия кнопки Stop вы увидите, что результатом манипуляций по записи макроса стало отдельное действие Watch Me Do. Если вы все сделали «чисто», то это окно будет иметь аккуратный внешний вид, вроде этого:

Automator

Как видите, оно состоит из 5 действий. Для каждого из них можно поставить задержку в секундах. Это целесообразно сделать для действий с загрузкой веб-страниц, выставим задержку на 10 секунд (чтобы они точно загрузились). Такую же задержку лучше поставить и на запуск приложения.

Automator

Теперь выполним действия для TextEdit:

  • щелкнем на TextEdit в Dock
  • наберем в полее ввода произвольный текст
  • нажмем cmd+q (закрываем TextEdit)

Automator

В принципе, все действия с Safari и TextEdit можно было выполнить и в одном событии, но я рекомендую вам дробить манипуляции с программами на небольшие задачи. Так легче вносить последующие правки в программу, если что-то пойдет не так.

Все, что нам осталось сделать — зациклить эти действия, чтобы они постоянно повторялись. Для этого существует Loop. Действует оно очень просто – при достижении Loop, сценарий просто перезапускается с начала. Добавьте это действие в поле программы, и выберите в настройках вариант Loop automatically, а в поле ввода Stop after введите время, в течение которого вы хотите выполнять нашу программу (например, 500 минут, этого будет вполне достаточно, чтобы села любая батарея).

Automator 4

Стоит заметить, что наша программа на любом компьютере будет выполнять действия по заданному нами алгоритму. Поэтому, если при записи ваше приложение было в Dock и вы его оттуда запускали, то и на другом компьютере оно должно быть в Dock.

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

Созданный мною тест можно скачать здесь.

Share.