Автоматизированное взаимодействие с Google Chrome

9

Ладно, СУ, у меня есть забавный орешек.

У меня есть 8 экранов, установленных в линию, и все они подключены к одному мощному G5 под управлением Snow Leopard (да, 4 видеокарты; шириной около 15 000 пикселей!). Я настраиваю демонстрацию, которая использует 8 полноэкранных окон браузера Chrome, каждое из которых указывает на отдельный URL. Это задница - делать это вручную каждый раз, когда компьютер перезагружается.

Учитывая эту настройку, я хочу написать скрипт для:

  1. Откройте окно Chrome для определенного экрана
  2. Укажите это окно на определенный URL
  3. Полноэкранное окно (команда-F - это сочетание клавиш)

Я не использовал automator, и я не особенно знаком с сценариями оболочки, но мне было интересно, есть ли какие-нибудь модные предложения от толпы.

Обновление: даже если мне нужно использовать Automator для высокоуровневой функциональности, я в конечном итоге надеюсь на способ запуска сценария из командной строки / сценария. Я хотел бы иметь возможность включить эту демонстрацию удаленно из оболочки при необходимости.

slifty
источник
Я думаю, что Automater - отличное место для старта. Хотя я тоже этим не особо пользовался. Раньше я использовал продукт «Egg Plant Purple», который вы можете использовать для этого - хотя я хотел бы думать, что есть намного лучшие варианты там ..
Джеймс Т Снелл
Я думаю, что определенный экран - это то, что будет трудно достичь, хотя.
Slhck

Ответы:

8

Я понял!

Applescript - отличный ресурс, и в Chrome есть словарь (вы можете просмотреть его в «Редакторе приложений», а затем выбрать «Открыть словарь» и найти Chrome в списке).

Код:

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

Сценарий выполняет следующие действия:

  1. Активировать Chrome (либо открывает его, либо, если он открыт, делает его фокусом)
  2. Закройте все открытые окна браузера
  3. Создайте окна браузера [screenCount], открывая их по определенной координате (первые два слагаемых в {bounds} - это x, y верхнего левого угла. Вторые два слагаемых в {bounds} - это x, y нижнего правильно)
  4. После открытия каждого окна браузера отправьте команду «на весь экран» (Ctrl + Shift + F).
  5. После того, как каждое окно браузера будет полноэкранным, установите URL в нужное место.

Помните, что мои URL-адреса соответствуют определенной формуле (например, http: // localhost: 8000 / # 0 ), поэтому их было легко динамически генерировать. Для тех, кто сталкивается со случайно подобными потребностями, вы можете использовать это как отправную точку.

Наконец, что касается требования к терминалу, вы можете запустить яблочный скрипт на терминале, используя следующую строку:

osascript [имя сценария]

slifty
источник