Автоматическая установка расширения Safari на Mac без запроса пользователя - PullRequest
5 голосов
/ 02 апреля 2012

Я настраиваю тестирование Selenium для Safari 5 на Mac.Мне нужно установить наше расширение Safari заранее, и это должно произойти тихо и без каких-либо подсказок пользователя.Из предыдущих сообщений я обнаружил, что это работает в том, что он загружает браузер с расширением:

open -a Safari okta.safariextz

Но он оставляет браузер открытым с приглашением кпользователь: «Вы уверены, что хотите установить расширение?»

Selenium не имеет доступа к этому приглашению и не может нажать «Установить».Мне нужно настроить Safari таким образом, чтобы он не предлагал пользователю установить, а просто позволяет установить расширение.

Есть ли способ сделать это?

Любые указатели приветствуются.

-Денали

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Редактировать: Возможный новый метод: Ответ здесь может предположить (что-то неясно), что, с возможным риском испортить ваши будущие обновления сафари, вы сможете установить расширение вручную, пропустив запрос подтверждения, путем перемещения файла и взлома plist. Я не пробовал, но похоже, что это может сработать:

Если вы просто делаете это для внутреннего развертывания и не возражаете, если оно сломается при обновлении Safari, вы можете выйти из Safari, установить расширение в ~ / Library / Safari / Extensions и обновить ~ / Library /Safari/Extensions/Extensions.plist (формат довольно очевиден; / usr / libexec / PlistBuddy полезен для таких вещей).

Вы не можете делать то, что вам нужно - по крайней мере, без какого-либо переключателя командной строки или взлома plist, о котором я знаю. Подтверждение установки расширения является основной частью модели безопасности Safari, и его нелегко обойти.

Вместо этого я хотел бы рассмотреть вопрос об использовании автоматизатора (если вы не знакомы с ним, подумайте о Selenium, но не о настольных приложениях и т. Д.), Чтобы отправить щелчок по соответствующей кнопке, а затем распространить приложение автоматизатора, которое запускает сафари с соответствующие параметры, посылает щелчок, когда появляется диалоговое окно расширения, и затем запускает автоматизацию на основе Selenium (а не на основе автоматизатора). Для начала я бы проверил следующие ссылки: Автоматизация через яблочный скрипт, а не через конструктор автоматизации "duplo legos": http://www.mactech.com/articles/mactech/Vol.21/21.06/UserInterfaceScripting/index.html Очень краткий обзор записи макросов (вы нажимаете на запись, посылаете желаемый щелчок, нажимаете кнопку Сохранить, и вы можете повторно выполнить записанные действия): http://automator.us/leopard/features/virtual-user.html Мое любимое введение в учебник по автоматизации: http://cjrtools.org/mac/tutorials/autohowto.html

0 голосов
/ 02 апреля 2012

Я не верю, что есть какой-либо способ установить расширение без вывода сообщений, так как это было бы дырой в безопасности.Возможно, вы захотите попробовать включить AppleScript для установки расширения перед запуском ваших тестов Selenium.

Вот еще один вопрос о StackOverflow с деталями AppleScript для перезагрузки расширения Safari, который можно использовать в ваших целях:

Как перезагрузить расширение Safari из командной строки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...