与 Google Chrome 自动交互

与 Google Chrome 自动交互

好吧,SU,我有一个有趣的问题要解决。

我有 8 个屏幕排成一排,全部连接到一台运行 Snow Leopard 的强大 G5(是的,4 个显卡;宽度约为 15,000 像素!)。我正在设置一个演示,它使用 8 个全屏 Chrome 浏览器窗口,每个窗口指向不同的 URL。每次重新启动计算机时都要手动执行此操作,真是麻烦。

根据这个设置,我想编写一个脚本来自动执行以下任务:

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

我没有使用过自动化程序,而且我对 shell 脚本也不是特别熟悉,但我想知道是否有人能给出一些有趣的建议。

更新:即使我需要使用 Automator 来实现高级功能,我最终还是希望能够从命令行/脚本触发脚本。如果需要,我希望能够从 shell 远程打开此演示。

答案1

我想到了!

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://本地主机:8000/#0),因此很容易动态生成它们。对于任何有随机类似需求的人,您都可以将此作为起点。

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

osascript [脚本名称]

相关内容