我正在尝试打开一个消息传递应用程序(它没有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
答案 0 :(得分:0)
如果应用程序缺少AppleScript字典,除标准命令launch
,activate
,open
,reopen
和quit
之外的任何命令都将引发错误
解决方案是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来手动识别要单击的屏幕坐标。