web-dev-qa-db-ja.com

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

プロセスNameに属するウィンドウのテキストフィールドPasswordSecurityAgentの値を設定したいApplescriptがあります。

これは次のようになります。

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で参照できるようにOSXウィンドウをマッピングする方法はありますか?これに関する情報はどこにも見つからないようです。

8
stefmikhail

私はかつて イメージキャプチャアプリケーションのボタンをクリックしようとしました そしてこの特定のボタンを見つけるのに時間がかかりました。そこでの私の質問/回答で説明されているように、UIElementInspectorを使用する方法があります。できます Appleから無料でダウンロード (ダウンロードリンクはボタンの上部にあり、直接リンク ここ )。

ホバーしている各ウィンドウのUI要素を確認できます。押す Cmd-F7 その内容をホバーしている要素にロックします。

enter image description here

「楽しい」部分は、実際にはウィンドウがどのようにグループ化されているか、そしてどの要素がどの親に属しているかを理解することです。 55ドルのアプリケーション I Browser は、これでより良い仕事をすると主張しています。

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

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

9
slhck