如何浏览Applescript对象" DOM"对于给定的对象?

时间:2017-02-25 10:01:52

标签: applescript

给定Applescript中的一个对象(即我有一个Object Specifier),我如何找出它具有的所有可访问属性(?)?我不确定properties是否是正确的词,我的问题的一部分是正确的词汇是什么;我将通过以下示例说明我的意思。

例如:

使用以下对象说明符tell application "System Events" to get process "TextEdit",我可以访问它的window属性(?),例如tell application "System Events" to get window of process "TextEdit"。 (请注意,window显然是一个列表。

我想要的是以某种方式查询Object Specifier,它将向我显示对象中可用的内容(属性?),如window。例如,在Python中,可以使用dir(object_name)完成此操作。 Applescript中是否有相应的内容?

我尝试了以下两种方法,但这些方法虽然提供了有用的列表,却没有实现目标,因为它们没有像示例中那样返回window

tell application "System Events" to get properties of process "TextEdit"

tell application "System Events" to get attributes of process "TextEdit"

我正在寻找类似样式的东西,它会返回window和其他属性(?),如window。如何在Applescript代码中调用这样的查询?

此外,window of process "TextEdit"究竟是什么?是property吗? attribute?别的什么?是否有一种简单的方法可以在Applescript编辑器中回答这个问题,例如可能通过解释返回的window对象的蓝色斜体显示?这种外观对于区分属性,属性等有意义吗? (这里包括'等等,特别是使用正确的词汇,是我的问题的一部分..)

1 个答案:

答案 0 :(得分:1)

在AppleScript中

  • Properties leaf 项目,例如nameidentifier
  • Elements节点项目,例如attributeswindowsdocuments

element不是标准AppleScript术语的一部分。

如果应用程序是可编写脚本的(TextEdit是),您将获得一个脚本字典来访问应用程序元素和属性

如果应用程序不是可编写脚本的,您可以通过System Events访问应用程序流程的 UI属性和元素

应用程序的AppleScript字典包含有关可用元素,属性,命令/事件,枚举和值类型的所有信息。在脚本编辑器中,按⇧⌘O并选择字典。

更复杂,更昂贵的工具是Script Debugger,它提供了一个术语浏览器。对于专业脚本的开发,它是不可或缺的。