Разрешить JavaScript из событий Apple в Safari через терминал Mac
Я пишу программу, которая выполняет do javascript
в сафари. Единственная проблема в том, что я пытаюсь заставить приложение дать себе разрешение на это. Я пытаюсь найти файл, который обрабатывает настройки Safari для разработчиков, чтобы я мог это сделать. У кого-нибудь есть идеи, где это может быть или как изменить эти настройки?
1 ответ
Это в списке предпочтений Safari на ~/Library/Preferences/com.apple.Safari.plist
, Ключ, который вы хотите AllowJavaScriptFromAppleEvents
, Вы можете установить его, используя defaults
:
#to turn it on
defaults write -app Safari AllowJavaScriptFromAppleEvents 1
#to turn it off
defaults write -app Safari AllowJavaScriptFromAppleEvents 0
У меня не работала виртуальная клавиатура. Как выяснил StarPlayr на форуме разработчиков Apple, проблема в другом. Для меня проблема возникла, когда я пытался сделать это на удаленном Mac. Для некоторых людей подключение клавиатуры и мыши к Серверу позволило включить JavaScript Apple Events в Safari и установить пароль.
Тем не менее, для меня это не вариант, поэтому следующая лучшая вещь - это использовать функцию сценариев доступности и заставить компьютер думать, что пользователь делает щелчки, позволяя вам установить пароль:
- Задержки могут быть короче, координаты могут отличаться
- Лучший способ получить координаты - захват экрана Apple (command-shift-3) сверху справа внизу слева (координаты будут показаны)
- если тратить время, события щелчка могут быть преобразованы в объекты AppleScript Accessibility путем захвата их в качестве переменных или проверки событий и использования событий вместо координат щелчка
tell application "System Events"
tell application "Safari"
activate
end tell
delay 1
-- click develop menu (make sure its on first)
click at {430, 12}
delay 1
-- click Allow Javascript menu from Apple Events
click at {615, 615}
delay 1
-- Click the Allow Button
click at {1010, 386}
end tell