Apple脚本错误:无法继续单击

时间:2015-08-16 18:54:16

标签: macos automation applescript

我正在尝试打开一个消息传递应用程序(它没有Apple Script Dictionary(命令+ shift + o)),单击文本,然后在文本框中输入,然后点击发送。

  

弹出:脚本错误 - 应用程序激活后的Telegram got an error: Can't continue click

     

结果标签:error "Telegram got an error: Can’t continue click." number -1708

P.S。,消息传递应用程序是Telegram

  

Apple Script:

tell application "Telegram"
    activate
    delay 1
    click on text "chat name"
    keystroke "some text"     
    //assuming this works because text box is the first responder when the chat opens.
    click on text "Send"
end tell

2 个答案:

答案 0 :(得分:0)

如果应用程序缺少AppleScript字典,除标准命令launchactivateopenreopenquit之外的任何命令都将引发错误

解决方案是GUI脚本:内置应用程序System Events是将鼠标点击和键盘事件发送到目标应用程序的桥梁。

我根本不知道应用程序Telegram,所以这段代码可能会失败,但它也可能是一个起点

activate application "Telegram"
tell application "System Events"
  tell process "Telegram"
    tell window 1
      keystroke "some text"     
      click button "Send"
    end tell
  end tell
end tell

答案 1 :(得分:0)

对于缺少AppleScript字典的第三方应用,您有两种选择。

选项1:

使用如上所述的系统事件对元素执行操作,例如单击一个按钮,将文本击键到一个字段等。诀窍是识别Applescript识别的语法元素。除了上面提到的UIElementInspector,它可能会令人困惑,偶尔也会出错/不完整,您还可以在单​​独的Applescript Editor中运行以下命令。例如,要获取Telegram中的活动窗口(窗口1)的所有UI元素:

    tell application "System Events" to tell application process "Telegram" to tell window 1
            UI elements
    end tell

获取Telegram中主菜单栏的所有UI元素:

    tell application "System Events" to tell application process "Telegram" to tell menu bar 1
            UI elements
    end tell

在每种情况下,“结果”窗格将显示该窗口或菜单栏中所有可用UI元素的逗号分隔列表。此外,所列出的语法保证可以被Applescript识别。只需识别正确的元素,并告诉系统事件告诉它该做什么。

例如,如果要单击菜单项“格式”,请在TextEdit中首先运行以下命令:

    tell application "System Events" to tell application process "TextEdit" to tell menu bar 1
        UI elements
    end tell

“结果”窗格中的结果如下:

     menu bar item "Format" of menu bar 1 of application process "TextEdit" of application "System Events"

将其转换为Applescript,运行脚本,然后单击“格式”菜单:

    tell application "TextEdit" to activate --you need TexEdit up and running to click its menu bar

    tell application "System Events" to click menu bar item "Format" of menu bar 1 of application process "TextEdit"

对于子菜单等,您只需迭代该过程,询问子菜单的UI元素。 GUI脚本是迭代和经验的。

选项2:

下载免费的终端/命令行应用cliclick,可让您点击屏幕上的任意一点。您可以通过按住命令+ shift + 4来手动识别要单击的屏幕坐标。