Cara mengetahui nama elemen UI menggunakan inspektur Aksesibilitas (atau alat lainnya)

21

Saya mencoba berinteraksi dengan dialog cetak melalui Applescript.

Yang ingin saya tiru adalah pengguna menetapkan nilai pada dropdown tertentu.

Katakan saya punya:

tell application "System Events"
  tell process "Preview"
    set value of pop up button XXX to YYY
  end tell
end tell

Bagaimana saya tahu nama XXX? Sebagai contoh, bagaimana saya membedakan antara dropdown "printer" dan "preset"?

Saya telah membuka Inspektur Aksesibilitas, tetapi dari informasi yang ditampilkan di sana, saya tidak dapat menemukan referensi ke nama atau pengidentifikasi unik lainnya untuk dropdown yang ditentukan.

Saya telah melihat banyak orang menggunakan angka untuk merujuk pada dropdown yang berbeda, tetapi saya tidak yakin ini adalah praktik yang baik. Apa yang terjadi jika Apple memutuskan untuk menukar urutan dua dropdown di beberapa titik?

Bantuan apa pun akan dihargai.

PEMBARUAN :

Menggunakan 10.6.8 dan inspektur seperti yang disarankan di bawah ini, saya mendapatkan yang berikut:

masukkan deskripsi gambar di sini

Roberto Aloi
sumber
Saya menemukan UI elementsperintah dari sini bermanfaat juga: n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescript
phs
Berikut ini tautan ke halaman lain di Ask Different yang tertaut ke halaman saat ini, yang disebut: AppleScript - Bagaimana saya bisa mendapatkan nama, atribut, properti, kelas UI secara terprogram tanpa "menebak" melalui Aksesibilitas Inspektur? (Pertanyaan di sini adalah alasan mengapa saya ingin belajar beberapa fakta dasar tentang "Bagaimana-untuk" ...)
clemsam lang

Jawaban:

15

MEMPERBARUI. ini akan bekerja di 10.7.x tetapi 10.6 memiliki info elemen file.

Tombol (drop-down) di Lembar Cetak memiliki Deskripsi untuk menjelaskan fungsi.

Di inspektur Aksesibilitas ; Anda melihat ini ketika mengarahkan mouse di atas elemen (tombol). Anda dapat mengunci tampilan inspektur Aksesibilitas dengan cmd + F7.

Uraian akan didaftar sebagai keterangan AXD

masukkan deskripsi gambar di sini

Dalam kasus untuk Printers, Printers for Presets adalah Preset

Jika Anda mengetahui deskripsi AXD, Anda dapat menghindari angka menggunakan sesuatu seperti ini. Tapi ini bukan satu-satunya cara. Hanya satu contoh.

activate application "Preview"
tell application "System Events"
    tell process "Preview"
        click ((pop up buttons of sheet 1 of window 1) whose description is "Printers")
    end tell
end tell

Agar cara di atas berfungsi dalam contoh ini, Lembar Cetak harus terlihat bersama dengan 'Tampilkan Detail'

Tombol / drop down memiliki menu. Sehingga Anda dapat memilih atau klik dengan mengacu pada item menu dari menu tombol.

Baik dengan nomor atau menggunakan judul / AXTitle.

activate application "Preview"
    tell application "System Events"
        tell process "Preview"
            click ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

click menu item "Last Used Settings" of menu of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")
        end tell
    end tell

Anda dapat mempersingkat kode berulang dengan menggunakan variabel untuk tombol dan memanggilnya. Ketika melakukannya seperti contoh saya di bawah ini;

   activate application "Preview"
tell application "System Events"
    tell process "Preview"
        set Presets_button to item 1 of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

        click Presets_button
        click menu item "Last Used Settings" of menu of Presets_button
    end tell
end tell
markhunte
sumber
4

Bagi mereka yang bertanya-tanya, tampaknya satu lokasi di mana menemukan Inspektur Aksesibilitas di 10.7 adalah:

/Applications/Xcode.app/Contents/Applications

Arnaud P
sumber
1

Baru-baru ini saya menulis alur kerja saya untuk Scripting UI di AppleScript .

Singkatnya, komponen kunci yang membuat banyak hal, jauh lebih mudah bagi saya adalah belajar bahwa UI Elementsperintah di AppleScript mengembalikan daftar istilah yang ingin dilihat oleh Editor AppleScript untuk memanggil Elemen UI. Antarmuka ini dengan istilah yang dilihat dari Inspektur Aksesibilitas (yang seringkali sedikit berbeda) untuk membuat skrip yang berfungsi.

nhenrie
sumber