Блокирование всплывающего окна осуществляется через Safari/preferences/tab Безопасность, где вам необходимо установить правильный флажок.
Это предпочтение, похоже, хранится в файле библиотеки/предпочтений com.safari.plist, который содержит флаг com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsАвтоматически со значением Да, когда всплывающие окна заблокированы.
Однако это может быть не единственное место для изменения, и в любом случае оно официально не задокументировано, так что это место может быть изменено Apple в любое время. Это не рекомендуется использовать.
Возвращаясь к Applescript, потому что Safari довольно плох с точки зрения обработки событий applescript, вы вынуждены проходить через графический интерфейс. Это то, что вы начали, но имейте в виду, что если Apple изменит расположение окна настроек Safari, ваш сценарий должен быть пересмотрен.
При использовании графического интерфейса GUI (который, опять же, должен быть только тогда, когда не найдено ни одного другого решения), вы должны понимать структуру объектов GUI. Окно содержит кнопку, флажок, панель инструментов ... в иерархической модели. Например, окно предпочтений в Safari содержит приведенную ниже панель инструментов, объект «группа 1» сам по себе содержит много объектов в зависимости от выбора текущего инструмента. После того, как вы понимаете эту концепцию, ниже скрипт, который делает то, что вы ищете, будет легко понять, с большим количеством комментариев:
tell application "Safari" to activate
tell application "System Events"
keystroke "," using {command down}
delay 0.2 -- leave sometime to open window
tell window 1 of process "Safari"
click button 6 of toolbar 1 -- Security button is number 6
delay 0.2
-- check if check box not yet set and set it.
if (value of checkbox 5 of group 1 of group 1) = 0 then click checkbox 5 of group 1 of group 1
end tell
delay 0.2
click button 1 of window 1 of process "Safari" -- click on red/close button
end tell
Я бегу на сафари 10.0.3. Если ваша версия отличается, окно предпочтений может отличаться. Затем скрипт должен быть скорректирован: кнопка вкладки «Безопасность» может быть больше не номером 6 в вашей версии, ...
Эй, спасибо за это. Но я сталкиваюсь с несколькими проблемами. Я запускаю Safari 9.1.2, и в этой версии вкладка «Безопасность» имеет всего 5 флажков, а опция «всплывающее окно» блокировки - это третья. Оставляя это в стороне, он даже не меняет вкладки, на котором вы написали «tell window 1 процесса» Safari »нажмите кнопку 6 панели инструментов 1' – ShdwKnght333
Извините, только этот оператор дает ошибку' tell window 1 процесса «Safari» и ошибка «144: 145: синтаксическая ошибка: ожидаемый конец строки, но найден» «». (-2741) ' – ShdwKnght333
Вот что я упомянул в своем ответе: любая разница в макетах окон Safari заставляет графический интерфейс меняться. Я сделал это с Safari 10.0.3, и вы должны настроить его на макет окна настроек в 9.1.2. Кроме того, проверьте, что команда «,» также открывает окно настроек в вашей версии. О синтаксической ошибке, если «отсутствует», возможно, это потому, что вы не скопировали правильно сценарий. Убедитесь, что все открытия «имеют закрытие». – pbell