标识要在AppleScript中使用的Mac OS X窗口,组和文本字段名称


8

我有一个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 

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

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

Answers:


9

我曾经尝试单击Image Capture应用程序中的一个按钮,但花了我一段时间才找到此特定按钮。如我的问题/答案所述,有一种使用UIElementInspector的方法。您可以从苹果免费下载(下载链接是在一个按钮上,直接链接在此)。

它使您可以浏览所悬停的每个窗口的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

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


1
+100,让我知道UIElementInspector
Nifle

@slhck-哇!太棒了。非常感谢,我将立即开始工作。但是很好奇,因为我是AppleScript的新手。我将如何进行UI elements命令?
stefmikhail,2011年

1
@Stef好,例如UI Elements of window "Authenticate" of process ...。只需在AppleScript编辑器中执行此操作,然后查看底部的结果即可。不幸的是,我还没有找到一种更有效的方法来做到这一点。
slhck 2011年

@slhck-听起来不完美。最终,UI浏览器提供了一个月的全功能试用版,因此我也可以尝试一下。再次感谢一堆。
stefmikhail 2011年

@stefmikhail当然,没问题!让我知道UI浏览器如何为您工作,还没有时间尝试!
slhck 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.