Автоматизована взаємодія з Google Chrome


9

Гаразд SU, у мене веселий горіх тріщить.

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

Враховуючи цю налаштування, я хочу автоматично написати сценарій:

  1. Відкрийте хромоване вікно для певного екрана
  2. Вкажіть це вікно на певну URL-адресу
  3. Повний екран цього вікна (команда-F - це комбінація клавіш)

Я не використовував автоматизатор і мені не особливо добре знайомий з сценарієм оболонок, але мені було цікаво, чи є якісь химерні пропозиції з натовпу.

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


Я думаю, що Automater - це чудове місце для початку. Хоча я теж не дуже його використовував. Раніше я використовував продукт "Яєчна рослина фіолетовий", який ви, можливо, зможете використовувати для цього - Хоча я б хотів подумати, що тут є набагато кращі варіанти ..
James T Snell

Я думаю, що конкретний екран - це те, що буде важко досягти, хоча.
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], відкривши їх за певною координатою (перші два терміни в {границі) - це х, у верхньому лівому куті. Двома другими умовами в {межі} є х, у нижній право)
  4. Після відкриття кожного вікна браузера надсилайте команду "повний екран" (Command + Shift + F)
  5. Після повного екранування кожного вікна браузера, встановіть URL у потрібне місце.

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

Нарешті, що стосується термінальної вимоги, ви можете запустити яблучний скрипт на терміналі, використовуючи наступний рядок:

osascript [ім'я сценарію]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.