AppleScriptで使用するMac OS Xウィンドウ、グループ、およびテキストフィールドの名前を特定する


8

テキストフィールドNamePasswordプロセスに属するウィンドウの値を設定したいApplescriptがあります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表示されます。プロセスをシャットダウンします。上記のウィンドウのテキストフィールドを参照する方法がわかりません。

私の質問は、これらのテキストフィールドの名前、それらが属するグループ、およびそれらが属するウィンドウをどのように見つけるかです。AppleScriptでOS Xウィンドウを参照できるように、OS Xウィンドウをマッピングする方法はありますか?これに関する情報はどこにも見つからないようです。

回答:


9

私はかつてイメージキャプチャアプリケーションのボタンをクリックしようとした、それは、この特定のボタンを見つけるために、私はしばらく時間がかかりました。そこでの質問/回答で説明したように、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

これらは、要素とそれぞれのタイトルの検索を絞り込むために使用できるリストを提供します。


1
UIElementInspectorについて教えてくれた+100
Nifle

@slhck-うわー!なんて素晴らしい答えでしょう。それは非常にありがたいことであり、私はこれについてすぐに取り組むようになるでしょう。しかし、好奇心が強いのは、私がAppleScript全般に不慣れだからです。どのようにUI elementsコマンドを作成しますか?
-stefmikhail

1
@Stefまあ、例えばUI Elements of window "Authenticate" of process ...。AppleScriptエディターでこれを行い、下部の結果を見てください。残念ながら、これを行うより効率的な方法は見つかりませんでした。
-slhck

@slhck-いいえ、完璧に聞こえます。UIブラウザーは1か月の完全な機能トライアルを提供することになりますので、試してみることもできます。繰り返しますが、感謝します。
-stefmikhail

@stefmikhail確かに、問題ありません!UIブラウザがどのように機能するかを教えてください。まだ試してみる時間がありません。
slhck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.