如何使用 AppleScript 在 Chrome 中打开新标签页(前提是它尚不存在)?

如何使用 AppleScript 在 Chrome 中打开新标签页(前提是它尚不存在)?

我正在尝试编写一个小 AppleScript,以便在 Chrome 中创建一个新选项卡(如果该选项卡尚不存在)。我尝试了以下操作:

if title of tab is not "Gmail" then
    open location "https://mail.google.com/mail/u/0/?hl=en#all"
end if

但它不起作用。我错过了什么?

答案1

tell application "Google Chrome"
    repeat with w in windows
        set i to 1
        repeat with t in tabs of w
            if URL of t starts with "https://mail.google" then
                set active tab index of w to i
                set index of w to 1
                return
            end if
            set i to i + 1
        end repeat
    end repeat
    open location "https://mail.google.com/mail/u/0/#inbox"
end tell

答案2

以下代码:

  • 检查 Chrome 是否正在运行
  • 遍历活动窗口
  • 遍历标签,然后
  • 激活第一个标签,其标题的一部分是“Gmail”
  • 或打开新标签页

(这可以适用于任何页面标题/url,我将其用于驱动器/日历和 Gmail)

在 is_running(appName)上
    告诉应用程序“系统事件”到(进程名称)包含appName
结束正在运行
将 chromeRunning 设置为 is_running("Google Chrome")

如果 chromeRunning 那么
    告诉应用程序“Google Chrome”
        将 i 设置为 0
        将 j 设置为 0
        在 (windows) 中用 w 重复
            将 j 设置为 j + 1
            用 t 重复(w 的标签)
                将 i 设置为 i + 1
                如果 t 的标题包含“Gmail”则
                    将(窗口 j 的活动选项卡索引)设置为 i
                    返回
                万一
            结束重复
        结束重复
        告诉应用程序“Google Chrome”
            启用
            打开位置“http://mail.google.com/”
        结束告诉
    结束告诉
别的
    告诉应用程序“Google Chrome”
        启用
        打开位置“http://mail.google.com/”
    结束告诉
万一

答案3

如果我正确理解了这个问题,这对我有用:

tell application "System Events"
    set tabs to (radio buttons whose name contains "Gmail") of (tab group 1 of window 1 of application process "Chrome")
    if (count of tabs) is 0 then
        open location "https://mail.google.com/mail/u/0/?hl=en#all"
    else
        click item 1 of tabs
    end if
end tell

相关内容