Gambaran Umum Pohon Automasi UI

Produk teknologi bantuan dan skrip pengujian menavigasi pohon Microsoft UI Automation untuk mengumpulkan informasi tentang UI dan elemennya.

Dalam pohon UI Automation, terdapat elemen akar yang mewakili jendela desktop Windows ("desktop") dan elemen turunannya yang mewakili jendela aplikasi. Masing-masing elemen anak ini dapat berisi elemen yang mewakili potongan UI, seperti menu, tombol, toolbar, dan kotak daftar. Elemen-elemen ini dapat berisi elemen, seperti item daftar.

Pohon Automasi UI bukan struktur tetap. Ini jarang terlihat dalam totalitasnya karena mungkin mengandung ribuan elemen. Bagian dari pohon Automation UI dibangun saat klien membutuhkannya, dan struktur pohon berubah saat elemen ditambahkan, dipindahkan, atau dihapus.

Penyedia UI Automation mendukung pohon UI Automation dengan memfasilitasi navigasi antar item dalam sebuah fragmen. Fragmen adalah subtree lengkap elemen dari kerangka kerja tertentu, dan memiliki elemen akar (disebut akar fragmen) yang biasanya dihosting di jendela.

Penyedia tidak peduli dengan navigasi antara satu kontrol ke yang lain. Ini dikelola oleh inti Automation UI, yang menggunakan informasi dari penyedia jendela default.

Topik ini berisi bagian berikut.

Tampilan Pohon Automasi Antarmuka Pengguna

Pohon Automation UI dapat difilter untuk membuat tampilan yang hanya berisi elemen Automation UI yang relevan untuk klien tertentu. Pendekatan ini memungkinkan klien untuk menyesuaikan struktur yang disajikan melalui Automasi UI dengan kebutuhan khusus mereka.

Klien dapat menyesuaikan tampilan dengan menetapkan ruang lingkup dan memfilter. Cakupan mendefinisikan sejauh mana tampilan, dimulai dari elemen dasar. Misalnya, aplikasi mungkin hanya ingin menemukan turunan langsung desktop, atau semua turunan jendela aplikasi. Pemfilteran menentukan jenis elemen yang disertakan dalam tampilan.

Penyedia Automasi UI mendukung pemfilteran dengan menentukan properti pada elemen, termasuk properti IUIAutomationElement::IsControlElement dan IUIAutomationElement::IsContentElement properti.

Automasi UI menyediakan tiga tampilan default: tampilan mentah, tampilan kontrol, dan tampilan konten. Tampilan ini ditentukan oleh jenis pemfilteran yang dilakukan. Cakupan tampilan apa pun ditentukan oleh aplikasi. Aplikasi dapat menerapkan filter lain pada properti; misalnya, untuk menyertakan hanya kontrol yang diaktifkan dalam tampilan kontrol.

Tampilan Mentah

Tampilan mentah pohon otomatisasi antarmuka pengguna adalah pohon penuh elemen otomatisasi dengan desktop sebagai akarnya. Tampilan mentah mengikuti struktur terprogram asli aplikasi, dan merupakan tampilan paling rinci yang tersedia. Ini juga merupakan dasar di mana pandangan lain dari pohon dibangun. Karena tampilan ini tergantung pada kerangka kerja UI yang mendasar, tampilan mentah tombol Windows Presentation Foundation (WPF) memiliki tampilan mentah yang berbeda dari tombol Microsoft Win32.

Tampilan mentah diperoleh dengan mencari elemen tanpa menentukan properti atau dengan menggunakan IUIAutomation::RawViewWalker untuk mendapatkan antarmukaIUIAutomationTreeWalkeruntuk menavigasi pohon.

Tampilan Kontrol

Tampilan kontrol adalah subset tampilan mentah. Ini hanya mencakup item UI yang memiliki properti IUIAutomationElement::IsControlElement yang diatur menjadi TRUE.

Tampilan kontrol menyertakan item UI yang memberikan informasi kepada pengguna atau memungkinkan pengguna untuk melakukan tindakan. Ini adalah item UI yang paling menarik untuk aplikasi pengujian otomatis.

Tampilan kontrol juga menyertakan item UI noninteraktif yang berkontribusi pada struktur logis UI. Ini termasuk kontainer item seperti header tampilan daftar, toolbar, menu, dan bilah status. Item noninteraktif lain yang muncul dalam tampilan kontrol adalah grafik dengan informasi dan teks statis dalam kotak dialog.

Item noninteraktif yang digunakan hanya untuk tujuan tata letak atau dekoratif, seperti panel yang digunakan untuk meletakkan kontrol dalam kotak dialog, tidak muncul dalam tampilan kontrol.

Tampilan kendali dari pohon Automation UI dipetakan erat ke struktur UI yang dipahami oleh pengguna akhir. Ini memudahkan produk teknologi bantuan untuk menggambarkan UI kepada pengguna akhir dan membantu pengguna akhir berinteraksi dengan aplikasi.

Tampilan kontrol diperoleh dengan mencari elemen yang memiliki properti IUIAutomationElement::IsControlElement diatur ke true, atau dengan menggunakan ControlViewWalker untuk mendapatkan antarmuka IUIAutomationTreeWalker untuk menavigasi pohon.

Tampilan Isi

Tampilan konten pohon UI Otomasi adalah subset dari tampilan kontrol. Ini hanya mencakup item UI yang memiliki properti IUIAutomationElement::IsControlElement dan IUIAutomationElement::IsContentElement disetel ke TRUE.

Tampilan konten berisi item UI yang menyampaikan informasi aktual di antarmuka pengguna, termasuk item UI yang dapat menerima fokus keyboard dan beberapa teks yang bukan label pada item UI. Ini adalah item UI yang paling menarik bagi aplikasi pembaca layar. Misalnya, nilai dalam kotak kombo drop-down muncul dalam tampilan konten karena nilai mewakili informasi yang digunakan oleh pengguna akhir.

Dalam tampilan konten, kotak kombo dan kotak daftar keduanya direpresentasikan sebagai kumpulan item UI di mana satu, atau lebih dari satu, item dapat dipilih. Fakta bahwa satu item selalu terbuka dan satu item dapat diperluas dan diciutkan tidak relevan dalam tampilan konten karena dirancang untuk menampilkan data, atau konten, yang disajikan kepada pengguna.

Tampilan konten diperoleh dengan mencari elemen yang memilikiIsControlElement dan properti CurrentIsContentElement diatur ke TRUE, atau dengan menggunakan IUIAutomation::ContentViewWalker untuk mendapatkan antarmukaIUIAutomationTreeWalkeruntuk menavigasi pohon.

Gambar berikut menunjukkan perbedaan antara tampilan kontrol dan tampilan konten. Gambar pertama memperlihatkan kotak kombo sederhana dengan tiga item di daftar dropdown. Gambar kedua menunjukkan bagaimana item UI kotak kombo muncul dalam tampilan kontrol dan konten aplikasi UISpy.exe.

cuplikan layar kotak kombo sederhana dengan tiga item drop-down

cuplikan layar aplikasi uispy dengan tampilan kontrol dan konten item kotak kombo

Konseptual

Membuat objek CUIAutomation

Mendapatkan Elemen Otomatisasi Antarmuka Pengguna

Dasar-Dasar Automasi UI