Interaksi Otomatis dengan Google Chrome

9

Baiklah SU, saya punya kacang yang menyenangkan untuk dipecahkan.

Saya memiliki 8 layar yang diatur dalam satu baris, semua terhubung ke satu G5 gemuk yang menjalankan Snow Leopard (ya, 4 kartu grafis; lebar sekitar 15.000 piksel!). Saya menyiapkan demo yang menggunakan layar penuh browser 8 Chrome, masing-masing menunjuk ke URL yang berbeda. Sangat menyebalkan jika melakukan ini secara manual setiap kali komputer dihidupkan ulang.

Dengan pengaturan ini, saya ingin menulis skrip secara otomatis:

  1. Buka jendela chrome ke layar tertentu
  2. Arahkan jendela itu ke URL tertentu
  3. Layar penuh jendela itu (perintah-F adalah pintasan keyboard)

Saya belum pernah menggunakan automator dan saya tidak terlalu terbiasa dengan skrip shell, tapi saya bertanya-tanya apakah ada saran bagus dari kerumunan.

Pembaruan: Sekalipun saya perlu menggunakan Automator untuk fungsionalitas tingkat tinggi, saya pada akhirnya mengharapkan cara untuk memicu skrip dari baris perintah / skrip. Saya ingin dapat mengaktifkan demo ini dari jarak jauh jika perlu.

licin
sumber
Saya pikir Automater adalah tempat yang bagus untuk memulai .. Meskipun saya juga belum menggunakannya sebanyak itu. Saya dulu menggunakan produk "Egg Plant Purple" yang mungkin dapat Anda gunakan untuk ini - Meskipun saya ingin berpikir ada pilihan yang jauh lebih baik di luar sana ..
James T Snell
Saya pikir layar spesifik adalah apa yang akan sulit dicapai.
slhck

Jawaban:

8

Saya menemukan jawabannya!

Applescript adalah sumber yang bagus, dan chrome memiliki kamus (Anda dapat melihatnya di "Editor Applescript" dan kemudian pilih "Buka Kamus" dan temukan Chrome dalam daftar).

Kode:

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

Script melakukan hal berikut:

  1. Aktifkan Chrome (baik membukanya, atau jika terbuka, jadikan itu fokus)
  2. Tutup semua jendela browser yang terbuka
  3. Buat jendela browser [screenCount], membukanya pada koordinat tertentu (dua istilah pertama dalam {batas} adalah x, y dari kiri atas. Dua istilah kedua dalam {batas} adalah x, y dari bawah Baik)
  4. Setelah setiap jendela browser dibuka, kirim perintah "layar penuh" (Command + Shift + F)
  5. Setelah setiap jendela browser disaring penuh, atur URL ke lokasi yang diinginkan.

Ingatlah bahwa URL saya cocok dengan formula tertentu (mis. Http: // localhost: 8000 / # 0 ) sehingga mudah untuk membuatnya secara dinamis. Untuk siapa pun dengan kebutuhan yang serupa secara acak, Anda dapat menggunakan ini sebagai titik awal.

Terakhir, untuk persyaratan terminal, Anda dapat menjalankan applescript di terminal menggunakan baris berikut:

osascript [scriptname]

licin
sumber