Apple的《 Javascript自动化发行说明》提供了一个使用任意objectSpecifier搜索数组的示例。

firstTabsName = ObjectSpecifier.tabs[0].name
app.windows.whose({_match: [firstTabsName, 'Apple']})


但是,第一行会引发错误。 “ TypeError:未定义不是对象(正在评估'ObjectSpecifier.tabs')
我究竟做错了什么?谢谢您的帮助!

最佳答案

第一行在firstTabsName = ObjectSpecifier.tabs处爆炸,返回missing value。超过这一点的任何事情都不会成功。

您发布的代码似乎来自Apple发行说明,该代码缺少“ ObjectSpecifier”之后的空的一组parens,以及who语句之后的另一组。当您添加这些括号时,ObjectSpecifier的构造函数称为AND,其最终标识符被解析为匹配窗口的列表。因此,更正后的代码为:

app = Application('Safari')
firstTabsName = ObjectSpecifier().tabs[0].name // added parens
app.windows.whose({_match: [firstTabsName, "Apple"]})() // added parens
// --> [Application("Safari").windows.byId(9016)]

08-25 12:28