我正在尝试编写一个小 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