Gambaran Umum Pohon UI Automation

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

Di pohon Automation UI adalah elemen akar yang mewakili jendela desktop Windows ("desktop") dan yang elemen anaknya 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 Automation 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 Automation UI mendukung pohon Automation UI dengan menerapkan navigasi di antara item dalam 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 dari satu kontrol ke kontrol lainnya. Ini dikelola oleh inti Automation UI, yang menggunakan informasi dari penyedia jendela default.

Topik ini berisi bagian berikut.

Tampilan Pohon Otomatisasi UI

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 mencakup dan dengan memfilter. Cakupan mendefinisikan sejauh mana tampilan, dimulai dari elemen dasar. Misalnya, aplikasi mungkin hanya ingin menemukan anak-anak langsung desktop, atau semua turunan dari jendela aplikasi. Pemfilteran menentukan jenis elemen yang disertakan dalam tampilan.

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

Otomatisasi 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 Automation UI adalah pohon penuh elemen otomatisasi yang desktop-nya adalah akarnya. Tampilan mentah mengikuti dengan cermat struktur terprogram asli aplikasi, dan merupakan tampilan paling rinci yang tersedia. Ini juga merupakan dasar di mana tampilan lain dari pohon dibangun. Karena tampilan ini bergantung 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 antarmuka IUIAutomationTreeWalker untuk menavigasi pohon.

Tampilan Kontrol

Tampilan kontrol adalah bagian dari tampilan mentah. Ini hanya mencakup item UI yang memiliki properti IUIAutomationElement::IsControlElement yang diatur ke 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 mencakup 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 kontrol pohon Automation UI memetakan dengan cermat struktur UI yang dirasakan 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 Konten

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

Tampilan konten berisi item UI yang menyampaikan informasi aktual dalam 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 untuk 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 sedang disajikan kepada pengguna.

Tampilan konten diperoleh dengan mencari elemen yang memiliki Properti IsControlElement dan CurrentIsContentElement diatur ke TRUE, atau dengan menggunakan IUIAutomation::ContentViewWalker untuk mendapatkan antarmuka IUIAutomationTreeWalker untuk 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 kontrol dan tampilan konten item kotak kombo

Konseptual

Membuat Objek CUIAutomation

Mendapatkan Elemen Automasi Antarmuka Pengguna

Dasar-Dasar UI Automation