在前窗口的选项卡 2 中返回终端出现错误:无法获取窗口 1 的选项卡 2。(-1728)自 High Sierra 更新以来

baa*_*ger 5 terminal applescript macos-high-sierra

正如标题所说,我有一个可以执行以下操作的苹果脚本:

in tab 2 of front window
Run Code Online (Sandbox Code Playgroud)

以前工作正常,但自从 High Sierra 升级返回:

Terminal got an error: Can’t get tab 2 of window 1. (-1728)
Run Code Online (Sandbox Code Playgroud)

这对应于errAENoSuchObject我找不到任何关于此更改的文档 - 这是一个错误吗?有没有新的或更好的方法来做到这一点?

CJK*_*CJK 6

对象层次结构略有变化。每个选项卡在 AppleScript 中被引用为属于唯一父窗口对象的选项卡 1

所以,以前,如果有三个选项卡在一个窗口中打开,我们可以称它们为标签1标签2标签3窗口1。现在,我们有标签1窗口1标签1窗口2,和标签1窗口3

我发现定位特定选项卡的最方便和可靠的方法是识别包含具有特定tty属性值的选项卡对象的窗口对象。我使用一个看起来像这样的命令:

    tell application "Terminal"
        get the id of the first window ¬
            whose first tab's tty contains "003"

        set w to result
        close window id w
    end tell
Run Code Online (Sandbox Code Playgroud)

如果您想对事物有更清晰的了解,请运行以下命令:

    tell application “Terminal” to ¬
        get every tab of every window
Run Code Online (Sandbox Code Playgroud)

和这个:

    tell application “Terminal” to ¬
        get properties of every window
Run Code Online (Sandbox Code Playgroud)

和这个:

    tell application “Terminal” to ¬
        get properties of tab 1 of every window
Run Code Online (Sandbox Code Playgroud)