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 варианта:

  1. Используйте яблочный osascript для симуляции необходимых щелчков мышью.
  2. Перепишите ваш вопрос на 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
Другие вопросы по тегам