2012-04-02 14 views
5

Konfiguruję test Selenium dla przeglądarki Safari 5 na komputerze Mac. Muszę zainstalować nasze rozszerzenie Safari przed ręką i musi się to odbyć cicho i bez monitowania użytkownika. Z poprzednich postów, Znalazłem ten działa w tym, że ładuje przeglądarkę z rozszerzeniem:Cicha instalacja rozszerzenia Safari na komputerze Mac bez pytania użytkownika

otwarty -a Safari okta.safariextz

ale pozostawia przeglądarka otwarty w wierszu dla użytkownika: „Czy czy na pewno chcesz zainstalować rozszerzenie? "

Selenium nie ma dostępu do tego monitu i nie może kliknąć instalacji. Muszę skonfigurować Safari tak, aby nie monitował użytkownika o instalację, ale po prostu pozwala na zainstalowanie rozszerzenia.

Czy jest jakiś sposób to zrobić?

Wszelkie wskazówki są mile widziane.

-Denali

Odpowiedz

0

nie wierzę, istnieje jakikolwiek sposób na cichą rozszerzenie zainstalować, ponieważ byłoby to dziura bezpieczeństwa. Możesz spróbować włączyć AppleScript, aby zainstalować rozszerzenie przed uruchomieniem testów Selenium.

Oto kolejne pytanie na StackOverflow ze szczegółami AppleScript dla Safari przedłużacza przeładunku, które można wykorzystać do swoich celów:

How to reload a Safari Extension from the command line?

+0

Wielkie dzięki. Sprawdzę to. –

2

EDIT: Możliwa nowa metoda: Odpowiedź here może sugerować (to nieco niejasne), że z możliwym ryzykiem zepsucia twoich przyszłych aktualizacji safari, możesz być w stanie ręcznie zainstalować rozszerzenie, pomijając monit o potwierdzenie, poprzez przeniesienie pliku i włamanie do plist. Nie próbowałem go, ale wygląda na to, że może zadziałać:

Jeśli robisz to po wewnętrznej instalacji i nie przeszkadza ci to, jeśli przerwie aktualizację Safari, możesz zakończ Safari, zainstaluj rozszerzenie w ~/Library/Safari/Extensions i zaktualizuj ~/Library/Safari/Extensions/Extensions.plist (format jest raczej oczywisty,/usr/libexec/PlistBuddy jest przydatny dla takich rzeczy).

Nie możesz zrobić tego, o co prosisz - przynajmniej nie z żadnym przełącznikiem wiersza poleceń ani hackem plist, o którym wiem. Potwierdzenie instalacji rozszerzenia jest podstawową częścią modelu zabezpieczeń Safari i nie można go łatwo obejść.

Zamiast tego, rozważę użycie automatora (jeśli nie jesteś zaznajomiony z nim, pomyśl o Selenium, ale w aplikacjach komputerowych i nie tylko), aby wysłać kliknięcie odpowiedniego przycisku, a następnie rozpowszechnić aplikację automatyzacji, która uruchamia safari z odpowiednimi parametrami wysyła kliknięcie, gdy pojawia się okno dialogowe rozszerzenia, a następnie uruchamia automaty oparte na selenie (zamiast automatyzacji). Aby rozpocząć, sprawdziłbym następujące linki: Automatyzacja za pomocą applescript, a nie konstruktora automatyzacji "duplo legos": http://www.mactech.com/articles/mactech/Vol.21/21.06/UserInterfaceScripting/index.html Bardzo krótki przegląd nagrań makro (nagrywanie, wysłanie kliknięcia, zapisanie i możesz ponownie wykonać zarejestrowane działania): http://automator.us/leopard/features/virtual-user.html Moje ulubione wprowadzenie do samouczka poświęconego automatyzacji: http://cjrtools.org/mac/tutorials/autohowto.html

+0

Dzięki, sprawdzę je.Rozumiem, że byłaby to luka w zabezpieczeniach, jeśli mógłbyś kontrolować ją z tego samego programu wiersza poleceń, którego używasz do zainstalowania rozszerzenia, ale co z tym, że masz kontrolę nad systemem operacyjnym i przeglądarką, tak jak ja? Wygląda na to, że powinien istnieć jakiś sposób skonfigurowania przeglądarki do celów testowych. –

+0

Wciąż nie ma łatwego sposobu, który znam. Konieczność uruchamiania, instalowania rozszerzeń i uruchamiania testów selenu za jednym zamachem jest czymś w rodzaju małej niszy, a nie, wyobrażam sobie, czymś, co deweloperzy Safari uważają za ważną przyczynę otwarcia istotnej luki w zabezpieczeniach. –

+0

Ups, może być inna metoda, ale nie przetestowałem jej. Edytowanie mojej odpowiedzi; Wypróbuj to. –

Powiązane problemy