2012-04-02 2 views
5

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

открыт -a Safari okta.safariextz

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

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

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

Любые указатели оценили.

-Denali

ответ

0

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

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

How to reload a Safari Extension from the command line?

+0

Большое спасибо. Я проверю их. –

2

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

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

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

Вместо этого я бы подумал о том, чтобы использовать автомат (если вы не знакомы с ним, подумайте о Selenium, но для настольных приложений и т. Д.), Чтобы отправить клик по соответствующей кнопке, а затем распространить приложение-автомат, запускающее сафари с соответствующими параметрами, отправляет клик, когда появляется диалоговое окно расширения, а затем переходит к запуску на основе Selenium (а не автоматизации). Чтобы начать работу, я проверил следующие ссылки: Автоматизация с помощью applescript, а не с помощью конструктора автоматизации «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

Спасибо, я проверю их.Я понимаю, что это будет дыра в безопасности, если вы сможете контролировать ее из той же программы командной строки, которую вы используете для установки расширения, но как быть, если у вас есть контроль над ОС и браузером, как и я? Кажется, должен быть какой-то способ настройки браузера для целей тестирования. –

+0

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

+0

К сожалению, может быть другой метод, но я его не тестировал. Редактирование моего ответа; попробуйте. –

Смежные вопросы