Identifikasi nama Mac OS X Window, Group, dan Field Teks untuk digunakan dalam AppleScript

8

Saya memiliki Applescript di mana saya ingin mengatur nilai bidang teks Namedan Passwordjendela milik proses SecurityAgent.

Ini mirip dengan yang berikut:

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 

Sementara skrip saya juga merujuk pada proses SecurityAgent, jendela yang dimaksud adalah jendela yang muncul ketika Anda mematikan OS X, dan pengguna lain masuk. SecurityAgentJendela muncul meminta nama pengguna dan kata sandi administrator untuk menyelesaikan proses mematikan. Saya tidak tahu bagaimana merujuk ke bidang teks di jendela tersebut.

Pertanyaan saya adalah, bagaimana cara mengetahui nama bidang teks ini, grup tempat mereka berasal, dan jendela tempat mereka berada? Apakah ada metode pemetaan windows OS X sehingga saya bisa merujuk mereka di AppleScript? Sepertinya saya tidak dapat menemukan informasi mengenai ini di mana pun.

stefmikhail
sumber

Jawaban:

9

Saya pernah mencoba mengklik tombol di aplikasi Pengambilan Gambar dan butuh beberapa saat untuk menemukan tombol khusus ini. Seperti dijelaskan dalam pertanyaan / jawaban saya di sana, ada cara, menggunakan UIElementInspector . Anda dapat mengunduhnya secara gratis dari Apple (tautan unduh ada di atas dalam sebuah tombol, tautan langsung di sini ).

Ini memungkinkan Anda untuk mengintip elemen UI dari setiap jendela yang Anda hover. Menekan Cmd- F7mengunci isinya ke elemen yang Anda arahkan.

masukkan deskripsi gambar di sini

Bagian "asyik" sebenarnya mencari tahu bagaimana jendela dikelompokkan, dan elemen mana yang dimiliki oleh orangtua mana. Browser UI aplikasi $ 55 mengklaim melakukan pekerjaan yang lebih baik di ini.

Ketika Anda sedang debugging AppleScript secara manual, dan Anda berada dalam ruang lingkup sebuah jendela, Anda dapat mencoba menebak jalan Anda ke elemen individual menggunakan perintah seperti:

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

Ini akan memberi Anda daftar yang dapat Anda gunakan untuk mempersempit pencarian Anda untuk elemen dan judul masing-masing.

slhck
sumber
1
+100 untuk memberi tahu saya tentang UIElementInspector
Nifle
@slhck - Wow! Sungguh jawaban yang fantastis. Ini sangat dihargai, dan saya akan segera bekerja untuk ini. Ingin tahu, karena saya baru mengenal AppleScript secara umum; Bagaimana saya membuat UI elementsperintah?
stefmikhail
1
@Stef Yah, misalnya UI Elements of window "Authenticate" of process .... Lakukan saja ini di editor AppleScript dan lihat hasilnya di bagian bawah. Sayangnya saya belum menemukan cara yang lebih efisien untuk melakukan ini.
slhck
@ slhck - Tidak, tidak, itu terdengar sempurna. Dan akhirnya Browser UI menawarkan uji coba fitur penuh selama satu bulan, jadi saya akan dapat mencobanya juga. Sekali lagi, terima kasih banyak.
stefmikhail
@stefmikhail Tentu, tidak masalah! Beri tahu saya cara kerja Browser UI untuk Anda, belum sempat mencobanya!
slhck