【问题标题】:Working AppleScript fails when put into Workflow放入工作流时工作 AppleScript 失败
【发布时间】:2017-07-18 10:47:57
【问题描述】:

作为前言,我是非常 AppleScript 新手。

我有一个非常简单的工作 AppleScript,它在作为 Automator 中的工作流/应用程序的一部分运行时总是失败。我知道该脚本有效,因为我可以在脚本编辑器中多次运行它并且没有错误。

这是脚本:

activate application "Chess"

tell application "System Events" to tell process "Chess"
    click menu item "Preferences…" of menu "Chess" of menu bar item "Chess" of menu bar 1

    tell window 1
            repeat until sheet 1 exists
                delay 0.1
            end repeat
    end tell

    tell group "Speech" of sheet 1 of window 1
        set checkboxOne to checkbox "Allow Player to Speak Moves"
        set checkboxTwo to checkbox "Speak Computer Moves"
        set checkboxThree to checkbox "Speak Human Moves"

        tell checkboxOne
            set checkBoxStatus to value of checkboxOne as boolean
            if checkBoxStatus is true then click checkboxOne
        end tell
        tell checkboxTwo
            set checkBoxStatus to value of checkboxTwo as boolean
            if checkBoxStatus is true then click checkboxTwo
        end tell
        tell checkboxThree
            set checkBoxStatus to value of checkboxThree as boolean
            if checkBoxStatus is true then click checkboxThree
        end tell
    end tell

    click button "OK" of sheet 1 of window 1
end tell

同样,当自己运行时,没有错误。当作为工作流/应用程序的一部分在 Automator 中运行时,我收到错误:

System Events got an error: Can’t get sheet 1 of window 1 of process "Chess". Invalid index.

突出显示的行是

click button "OK" of sheet 1 of window 1

我有什么遗漏吗?为什么会出现此错误,我该如何解决?

提前感谢您的帮助!

【问题讨论】:

    标签: applescript automator


    【解决方案1】:

    尝试将这部分代码延迟包装在自己的 tell 语句中。像这样:

    tell application "System Events"
        delay .2
        click button "OK" of sheet 1 of window 1
    end tell
    

    【讨论】:

    • 完美!我现在意识到游戏中心登录确认妨碍了工作表,导致错误。
    【解决方案2】:

    也许你可以试试这个代码。它将切换复选框状态。

    tell group "Speech" of sheet 1 of window 1
        tell checkbox 1
            perform action "AXPress"
        end tell
    end tell
    

    【讨论】:

    • 我不想这样做的原因是,无论复选框的当前状态如何,我都想将其切换关闭,而不仅仅是反转它。
    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 2018-02-07
    • 2021-11-14
    • 2022-06-30
    • 2020-06-24
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    相关资源
    最近更新 更多