识别 AppleScript 中使用的 Mac OS X 窗口、组和文本字段名称

ste*_*ail 9 applescript macos

我有一个 Applescript,我希望在其中设置文本字段NamePassword属于进程的窗口的值SecurityAgent

它类似于以下内容:

tell window "Authenticate" of process "SecurityAgent"
    tell group 1
        set value of text field 1 to "king"
        set value of text field 2 to "king1"
    end tell
    click button "OK" of group 2
end tell 
Run Code Online (Sandbox Code Playgroud)

虽然我的脚本也指的是进程SecurityAgent,但有问题的窗口是在您关闭 OS X 并且另一个用户登录时SecurityAgent弹出的窗口。弹出窗口要求输入管理员用户名和密码以完成关闭过程。我不知道如何引用所述窗口中的文本字段。

我的问题是,如何找出这些文本字段的名称、它们所属的组以及它们所属的窗口?是否有映射 OS X 窗口的方法,以便我可以在 AppleScript 中引用它们?我似乎无法在任何地方找到有关此的信息。

slh*_*hck 10

我曾经尝试单击 Image Capture 应用程序中的一个按钮,但我花了一段时间才找到这个特定的按钮。正如我在那里的问题/答案中所解释的,有一种方法,使用UIElementInspector。您可以从 Apple 免费下载(下载链接在顶部的按钮中,直接链接在这里)。

它允许您查看您悬停的每个窗口的 UI 元素。按下Cmd-F7将其内容锁定到您悬停的元素。

在此处输入图片说明

“有趣”的部分实际上是弄清楚窗口是如何分组的,以及哪些元素属于哪个父级。55 美元的应用程序UI 浏览器声称在这方面做得更好。

当您手动调试 AppleScript 并且您处于窗口范围内时,您可以尝试使用以下命令猜测单个元素的方式:

UI elements of window 1
UI elements of splitter group 1 of window 1
UI elements of group 1 of splitter group 1 of window 1
Run Code Online (Sandbox Code Playgroud)

这些将为您提供一个列表,您可以使用该列表缩小对元素及其各自标题的搜索范围。