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