Gambaran Umum UI Automation
Catatan
Dokumentasi ini ditujukan untuk pengembang .NET Framework yang ingin menggunakan kelas UI Automation terkelola yang ditentukan pada namespace System.Windows.Automation. Untuk informasi terbaru tentang UI Automation, lihat API Automasi Windows: Automasi Antarmuka Pengguna.
Microsoft UI Automation adalah kerangka kerja aksesibilitas baru untuk Microsoft Windows, yang tersedia di semua sistem operasi yang mendukung Windows Presentation Foundation (WPF).
UI Automation menyediakan akses terprogram ke sebagian besar elemen antarmuka pengguna (UI) di desktop, yang memungkinkan produk teknologi bantu seperti pembaca layar memberikan informasi tentang UI kepada pengguna akhir dan untuk memanipulasi UI dengan cara selain input standar. UI Automation juga memungkinkan skrip uji otomatis berinteraksi dengan UI.
Catatan
Automasi UI tidak mengaktifkan komunikasi antara proses yang dimulai oleh pengguna yang berbeda melalui perintah Run as.
Aplikasi klien UI Automation dapat ditulis dengan jaminan bahwa aplikasi akan berfungsi di beberapa kerangka kerja. Inti UI Automation menutupi perbedaan dalam kerangka kerja yang mendasari berbagai bagian UI. Misalnya, properti Content
tombol WPF, properti Caption
tombol Win32, dan properti ALT
gambar HTML semuanya dipetakan ke satu properti, Name, dalam tampilan UI Automation.
UI Automation dilengkapi fungsionalitas lengkap di sistem operasi Windows yang didukung yang menjalankan .NET Framework (lihat persyaratan sistem .NET Framework atau versi .NET Core yang dimulai dengan .NET Core 3.0.
Penyedia UI Automation menawarkan beberapa dukungan untuk aplikasi klien Aksesibilitas Aktif Microsoft melalui layanan bridging bawaan.
Penyedia dan Klien
UI Automation memiliki empat komponen utama, seperti yang ditunjukkan dalam tabel berikut.
Komponen | Deskripsi |
---|---|
API Penyedia (UIAutomationProvider.dll dan UIAutomationTypes.dll) | Seperangkat definisi antarmuka yang diterapkan oleh penyedia UI Automation, objek yang menyediakan informasi tentang elemen UI dan menanggapi input terprogram. |
API Klien (UIAutomationClient.dll dan UIAutomationTypes.dll) | Serangkaian jenis untuk kode terkelola yang memungkinkan aplikasi klien UI Automation mendapatkan informasi tentang UI dan mengirim input ke kontrol. |
UiAutomationCore.dll | Kode mendasar (terkadang disebut inti UI Automation) yang menangani komunikasi antara penyedia dan klien. |
UIAutomationClientsideProviders.dll | Serangkaian penyedia UI Automation untuk kontrol lama standar. (Kontrol WPF memiliki dukungan native untuk UI Automation.) Dukungan ini otomatis tersedia untuk aplikasi klien. |
Dari perspektif pengembang perangkat lunak, ada dua cara dalam menggunakan UI Automation: untuk membuat dukungan untuk kontrol kustom (menggunakan API penyedia), dan membuat aplikasi yang menggunakan inti UI Automation untuk berkomunikasi dengan elemen UI (menggunakan API klien). Bergantung pada fokus Anda, Anda harus melihat bagian yang berbeda dari dokumentasi. Anda dapat mempelajari selengkapnya tentang konsep dan mendapatkan pengetahuan cara praktis di bagian berikut.
Bagian | Pokok permasalahan | Audiens |
---|---|---|
Dasar-Dasar UI Automation (bagian ini) | Ringkasan luas tentang konsep. | Semua. |
Penyedia UI Automation untuk Kode Terkelola | Ringkasan dan topik tentang cara memudahkan Anda menggunakan API penyedia. | Pengembang kontrol. |
Klien UI Automation untuk Kode Terkelola | Ringkasan dan topik tentang cara memudahkan Anda menggunakan API klien. | Pengembang aplikasi klien. |
Pola Kontrol UI Automation | Informasi tentang bagaimana pola kontrol harus diimplementasikan oleh penyedia, dan fungsi apa yang tersedia untuk klien. | Semua. |
Pola Teks Ui Automation | Informasi tentang bagaimana pola kontrol Teks harus diimplementasikan oleh penyedia, dan fungsi apa yang tersedia untuk klien. | Semua. |
Jenis Kontrol UI Automation | Informasi tentang properti dan pola kontrol yang didukung oleh jenis kontrol yang berbeda. | Semua. |
Tabel berikut mencantumkan namespace layanan UI Automation, DLL yang menyertakannya, dan audiens yang menggunakannya.
Ruang nama | DPL rujukan | Audiens |
---|---|---|
System.Windows.Automation | UIAutomationClientUIAutomationTypes | Pengembang klien UI Automation; digunakan untuk menemukan objek AutomationElement, mendaftar untuk peristiwa UI Automation, dan berfungsi dengan pola kontrol UI Automation. |
System.Windows.Automation.Provider | UIAutomationProviderUIAutomationTypes | Pengembang penyedia UI Automation untuk kerangka kerja selain WPF. |
System.Windows.Automation.Text | UIAutomationClientUIAutomationTypes | Pengembang penyedia UI Automation untuk kerangka kerja selain WPF; digunakan untuk menerapkan pola kontrol TextPattern. |
System.Windows.Automation.Peers | PresentationFramework | Pengembang penyedia UI Automation untuk WPF. |
Model UI Automation
UI Automation mengekspos setiap bagian UI ke aplikasi klien sebagai AutomationElement. Elemen terkandung dalam struktur pohon, dengan desktop sebagai elemen akar. Klien dapat memfilter tampilan mentah pohon sebagai tampilan kontrol atau tampilan konten. Aplikasi juga dapat membuat tampilan kustom.
Objek AutomationElement mengekspos properti umum elemen UI yang diwakilinya. Salah satu properti ini adalah jenis kontrol, yang menentukan tampilan dan fungsionalitas dasarnya sebagai entitas tunggal yang dapat dikenali: misalnya, tombol atau kotak centang.
Selain itu, beberapa elemen mengekspos pola kontrol yang menyediakan properti khusus untuk jenis kontrolnya. Pola kontrol juga mengekspos metode yang memungkinkan klien mendapatkan informasi lebih lanjut tentang elemen dan memberikan input.
Catatan
Tidak ada korespondensi satu-ke-satu antara jenis kontrol dan pola kontrol. Pola kontrol dapat didukung oleh beberapa jenis kontrol, dan satu kontrol dapat mendukung beberapa pola kontrol, yang masing-masing mengekspos berbagai aspek perilakunya. Misalnya, kotak kombo memiliki setidaknya dua pola kontrol: satu yang mewakili kemampuannya untuk meluas dan menciut, dan lainnya mewakili mekanisme pemilihan. Untuk detailnya, lihat Jenis Kontrol UI Automation.
UI Automation juga memberikan informasi ke aplikasi klien melalui peristiwa. Tidak seperti WinEvents, peristiwa UI Automation tidak didasarkan pada mekanisme siaran. Klien UI Automation mendaftar ke pemberitahuan peristiwa tertentu dan dapat meminta agar properti UI Automation tertentu dan informasi pola kontrol diteruskan ke penangan peristiwanya. Selain itu, peristiwa UI Automation berisi referensi ke elemen yang mengeluarkannya. Penyedia dapat meningkatkan performa dengan memunculkan peristiwa secara selektif, bergantung pada apakah ada klien yang mendengarkan.