macOS Sierra - как включить "Разрешить удаленную автоматизацию" с помощью командной строки
Я работаю над автоматизацией в macOS Sierra (10.12.2). Используя поддержку Python atomac, я могу запустить браузер Safari и включить настройки через Safari -> "Настройки" -> "Дополнительно" -> установите флажок "Включить меню разработки", а затем выберите "Разработка -> Разрешить удаленную автоматизацию". Похоже, это не так согласовано с точки зрения автоматизации. Я хотел бы знать, есть ли какая-либо команда оболочки, чтобы сделать это возможным.
1 ответ
Хм хорошо, так что в соответствии с моим комментарием:
Вы могли бы сделать defaults write com.apple.Safari IncludeDevelopMenu YES
активировать меню разработки через терминал. Вы можете заставить python выполнить эту команду за вас, используя модуль подпроцесса.
В соответствии с этим этот вопрос кажется, что раньше можно было просто defaults write com.apple.Safari AllowRemoteAutomation 1
, Однако, начиная с Safari 10, эта опция, по-видимому, была подвергнута протоколу с более высоким уровнем безопасности или чему-то еще (возможно, из-за введенной защиты целостности системы). Я искал plistfile, который теперь содержит настройку, но я не смог найти его. Возможно это даже не там в фактическом plistfile больше.
Я думаю, что это оставляет вам 2 варианта:
- Используйте яблочный osascript для симуляции необходимых щелчков мышью.
- Перепишите ваш вопрос на AskDifferent или на собственном форуме разработчиков Apple, так как вы с большей вероятностью найдете человека с глубокими знаниями macOS.
Я нашел ответ от: https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari
safaridriver --enable
Он запросит пароль администратора, поэтому некоторые люди устанавливают sudo (опасный) без пароля или делают другой обходной путь, например, вызов из Applescript.
Я проверил, что это работает с Mojave и Safari 12.0.3, и убедился, что это работает независимо от того, включено ли меню "Разработка", хотя вы, вероятно, хотите сэкономить на кликах и просто включить это тоже:
defaults write com.apple.Safari IncludeDevelopMenu 1