与Google Chrome的自动交互


9

SU,好的,我有一个好玩的螺母要破解。

我在一行中设置了8个屏幕,所有屏幕都连接到运行Snow Leopard的功能强大的G5(是的,有4个图形卡;大约15,000像素!)。我正在设置一个演示,该演示使用全屏显示的8个Chrome浏览器窗口,每个窗口指向一个不同的URL。每次重新启动计算机时,手动执行此操作都很麻烦。

有了这个设置,我想编写一个脚本来自动:

  1. 打开Chrome窗口至特定屏幕
  2. 将该窗口指向特定的URL
  3. 全屏显示该窗口(命令-F是键盘快捷键)

我没有使用过automator,并且对shell脚本并不特别熟悉,但是我想知道人群中是否有任何花哨的建议。

更新:即使我需要将Automator用于高级功能,我最终还是希望找到一种从命令行/脚本触发脚本的方法。我希望能够根据需要从Shell远程打开此演示。


我认为Automater是一个不错的起点。尽管我也没有太多使用它。我曾经使用产品“茄子紫”,你可能能够使用这个-虽然我想,认为有在那里..更好的选择
詹姆斯牛逼斯内尔

我认为特定的屏幕很难实现。
slhck

Answers:


8

我想到了!

Applescript是一个很好的资源,Chrome具有字典(您可以在“ Applescript编辑器”中查看它,然后选择“打开字典”并在列表中找到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. 打开每个浏览器窗口后,发送“全屏”命令(Command + Shift + F)
  5. 每个浏览器窗口全屏显示后,将URL设置到所需位置。

请记住,我的URL适合特定的公式(例如,http:// localhost:8000 /#0),因此很容易动态生成它们。对于具有随机相似需求的任何人,您都可以以此为起点。

最后,关于终端要求,您可以使用以下行在终端上运行applescript:

osascript [scriptname]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.