Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Applescript: выполнить установку экстеншена в сафари


(Эллина Кулагина) #1

Здравствуйте.
Мне нужно в ходе выполнения автотеста установить экстеншен в Сафари на маке.
Сейчас у меня такой сценарий:

  1. автотест нажимает на кнопку, начинается скачивание файлика экстеншена в downloads
  2. на паку downloads повешен FolderAction для файликов с расширением .safariextz
  3. сафари запускает файлик после скачивания (applescript начинает работать)
  4. появляется окно с двумя кнопками “Don’t install” и “Install”, и вот здесь у меня проблема - не нажимается кнопочка

Скрипт выглядит так:

on adding folder items to this_folder after receiving these_items
repeat with this_item in these_items
    if (this_item as string) ends with ".safariextz" then
        ignoring application responses
            tell application "Safari" to open this_item
        end ignoring
        tell application "System Events"
            tell process "Safari"
                repeat until (exists window 1) and subrole of window 1 is "AXDialog" -- wait until the dialog is displayed.
                    delay 1
                end repeat
                click button 1 of front window -- install
            end tell
        end tell
    end if
end repeat end adding folder items to

Окно с кнопками появляется, но ничего не происходит.
Я еще никак не разберусь, как отлаживать скрипт, поэтому даже не могу понять, в какой конкретно момент он вешается.