Zautomatyzowana interakcja z Google Chrome

9

W porządku SU, mam fajnego orzecha do zgryzienia.

Mam 8 ekranów ustawionych w jednej linii, wszystkie podłączone do jednej potężnej G5 z systemem Snow Leopard (tak, 4 karty graficzne; szerokość około 15 000 pikseli!). Przygotowuję wersję demo, która korzysta z 8 pełnoekranowych okien przeglądarki Chrome, z których każde wskazuje inny adres URL. Trudno jest robić to ręcznie za każdym razem, gdy komputer jest ponownie uruchamiany.

Biorąc pod uwagę tę konfigurację, chcę napisać skrypt automatycznie:

  1. Otwórz chromowane okno do określonego ekranu
  2. Wskaż to okno na określony adres URL
  3. Pełny ekran tego okna (Command-F to skrót klawiaturowy)

Nie korzystałem z automatyzatora i nie jestem szczególnie zaznajomiony ze skryptami powłoki, ale zastanawiałem się, czy są jakieś sugestie od tłumu.

Aktualizacja: Nawet jeśli muszę użyć Automatora dla funkcji wysokiego poziomu, ostatecznie mam nadzieję na sposób uruchomienia skryptu z wiersza poleceń / skryptu. W razie potrzeby chciałbym móc włączyć to demo zdalnie z poziomu powłoki.

slifty
źródło
Myślę, że Automater to świetne miejsce na początek. Chociaż ja też nie korzystałem z niego zbyt często. Kiedyś używałem produktu „Egg Plant Purple”, którego możesz być w stanie użyć do tego - chociaż chciałbym myśleć, że są tam o wiele lepsze opcje…
James T Snell
Myślę jednak, że konkretny ekran będzie trudny do osiągnięcia.
slhck

Odpowiedzi:

8

Rozgryzłem to!

Applescript to świetny zasób, a chrome ma słownik (możesz go wyświetlić w „Applescript Editor”, a następnie wybrać „Otwórz słownik” i znaleźć Chrome na liście).

Kod:

set screenCount to 8
set screenWidth to 1950
set baseURL to "http://localhost:8000"

tell application "Google Chrome"
    activate
    repeat while window 1 exists
        close window 1
    end repeat
    repeat with x from 1 to screenCount

        set w to make new window with properties {bounds:{screenWidth * (x - 1), 500, 500 + screenWidth * (x - 1), 1000}}
        tell application "System Events" to keystroke "F" using {command down, shift down}
        set URL of active tab of w to (baseURL & "/" & "#" & (x - 1))

    end repeat
end tell

Skrypt wykonuje następujące czynności:

  1. Aktywuj Chrome (albo go otwiera, albo jeśli jest otwarty, ustawia ostrość)
  2. Zamknij wszystkie otwarte okna przeglądarki
  3. Utwórz okna przeglądarki [screenCount], otwierając je przy określonej współrzędnej (pierwsze dwa terminy w {bounds} to x, y w lewym górnym rogu. Drugie dwa terminy w {bounds} to x, y dolnej dobrze)
  4. Po otwarciu każdego okna przeglądarki wyślij polecenie „pełny ekran” (Command + Shift + F)
  5. Po pełnym wyświetleniu każdego okna przeglądarki ustaw adres URL w żądanej lokalizacji.

Pamiętaj, że moje adresy URL pasują do określonej formuły (np. Http: // localhost: 8000 / # 0 ), więc łatwo było je dynamicznie wygenerować. Dla każdego z losowo podobnymi potrzebami możesz użyć tego jako punktu wyjścia.

Wreszcie, jeśli chodzi o wymaganie dotyczące terminala, możesz uruchomić applecript na terminalu, używając następującego wiersza:

osascript [nazwa skryptu]

slifty
źródło