将工作AppleScript放入工作流时失败

将工作AppleScript放入工作流时失败,applescript,automator,Applescript,Automator,作为前言,我对AppleScript很陌生 我有一个非常简单的,工作AppleScript,在Automator中作为工作流/应用程序的一部分运行时总是失败。我知道脚本可以工作,因为我可以在脚本编辑器中多次运行它,并且没有错误 以下是脚本: activate application "Chess" tell application "System Events" to tell process "Chess" click menu item "Preferences…" of menu

作为前言,我对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
我有什么遗漏吗?为什么会发生此错误?我如何修复它?


提前感谢您的帮助

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

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

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

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

我不想这样做的原因是,无论复选框的当前状态如何,我都想将其关闭,而不仅仅是将其反转。完美!我现在意识到游戏中心的登录确认妨碍了表单,导致了错误。