Программно установить расширения в Safari 8 OSX 10.10
Я пытаюсь исправить пару ошибок для SafariDriver/Selenium.
Вот проблема:
В Safari 7 и ниже для установки нового плагина все, что вам нужно было сделать, это поместить расширение в ~/Library/Safari/Extensions. Далее все, что вам нужно сделать, это активировать плагин, добавив его в ~/Library/Safari/Extensions/Extensions.plist, после этого в Safari будет установлен плагин.
Начиная с 10.10, это больше невозможно сделать. Расположение расширения такое же, но я не уверен, как активировать расширение, так как список Extensions.plist больше не существует.
Насколько я понимаю, что есть некоторый файл, который контролируется паролем "Safari Extensions List" в цепочке для ключей при входе в систему, но я не знаю, к какому файлу это может относиться.
Если я скомпилирую и установлю расширение вручную, все будет работать нормально, но автоматическая установка последнего плагина не работает. (документация для этого https://code.google.com/p/selenium/wiki/SafariDriverInternals)
2 ответа
Пароль "Safari Extensions List" на самом деле не пароль, а бинарный список ~/Library/Safari/Extensions/Extensions.plist
Прочитайте это, измените это, напишите это назад.
Правильнее всего сделать так, чтобы пользователь установил расширение, открыв его вручную (двойной щелчок или команда o). Это то, что Apple пытается заставить вас сделать. Apple никогда не хотела, чтобы кто-то возился со списками других приложений.
Большинство списков предпочтений кэшируются в памяти в любом случае, и потребуется новый сеанс входа в систему, чтобы удалить их и получить новые копии. Списки обновляются по окончании сеанса или рассматриваемого приложения.
Они никогда не предназначались для изменения поведения другого приложения. Это риск для безопасности.
В случае с Selenium целью является создание автоматизированной тестовой среды. Настройка хорошего установщика в какой-то степени опережает это.
Что нужно сделать, это сообщить об ошибке в Apple, сообщив им, какая функциональность вам нужна в Safari.