Я работаю над средствами автоматизации в 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
