أتمتة واجهة المستخدم من مايكروسوفت

تُعدّ Microsoft UI Automation (UIA) واجهة برمجة تطبيقات (API) تُمكّن المستخدم من الوصول إلى عناصر واجهة المستخدم (UI) لتطبيق آخر، وتحديدها، والتحكم بها. [ 1 ] [ 2 ]

يهدف UIA إلى توفير إمكانية الوصول إلى واجهة المستخدم ، وهو خليفة لـ Microsoft Active Accessibility . كما أنه يُسهّل أتمتة اختبار واجهة المستخدم الرسومية ، وهو المحرك الذي تعتمد عليه العديد من أدوات أتمتة الاختبار . وتستخدمه أدوات RPA أيضًا لأتمتة التطبيقات في العمليات التجارية .

يدعم مزودو العقارات التابعون لهيئة الاستثمار في أوهايو برامج Win32 و .NET .

توجد أحدث مواصفات UIA ضمن مواصفات وعد مجتمع أتمتة واجهة المستخدم من مايكروسوفت . وتؤكد مايكروسوفت أن قابلية النقل إلى منصات أخرى غير نظام التشغيل ويندوز كانت أحد أهداف تصميمها. وقد تم نقلها لاحقًا إلى Mono . [ 3 ]

تاريخ

في عام 2005، أصدرت مايكروسوفت UIA كخليفة لإطار عمل MSAA .

تم إصدار واجهة برمجة تطبيقات أتمتة واجهة المستخدم المُدارة كجزء من إطار عمل .NET 3.0 . وتُضمّن واجهة برمجة تطبيقات أتمتة واجهة المستخدم الأصلية (الموفر) كجزء من حزمة تطوير البرامج ( SDK) لنظامي التشغيل Windows Vista وWindows Server 2008 ، كما يتم توزيعها مع إطار عمل .NET.

تتوفر UIA بشكل افتراضي في نظام التشغيل Windows 7 كجزء من واجهة برمجة تطبيقات Windows Automation API 3.0 وكتنزيل منفصل لأنظمة التشغيل Windows XP وWindows Vista وWindows Server 2003 و2008. [ 4 ]

الدافع والأهداف

تهدف UIA، بصفتها الجهة الخلف لـ MSAA، إلى تحقيق الأهداف التالية:

  • تمكين أداء العميل بكفاءة دون إجبار العملاء على الاتصال بعملية التطبيق المستهدف.
  • اعرض المزيد من المعلومات حول واجهة المستخدم.
  • تتعايش مع MSAA وتستخدمها، لكنها لا ترث المشاكل الموجودة في MSAA.
  • قدّم بديلاً لـ MSAA يكون سهل التنفيذ.

نظرة عامة فنية

إطار
إطار

من جانب العميل، توفر UIA واجهة .NET بلغة UIAutomationClient.dllالتجميع وواجهة COM يتم تنفيذها مباشرة في UIAutomationCore.dll.

على جانب الخادم، UIAutomationCore.dllيتم حقن مكتبة الارتباط الديناميكي (DLL) في جميع العمليات أو عمليات محددة على سطح المكتب الحالي لاسترجاع البيانات نيابةً عن العميل. كما يمكن للمكتبة تحميل ملحقات واجهة المستخدم الرسومية (UIA) (المسماة بالموفرين ) في عملية المضيف لاستخراج البيانات باستخدام تقنيات مختلفة.

يحتوي نظام UIA على أربعة مكونات رئيسية للمزود والعميل، كما هو موضح في الجدول التالي.

عنصروصف
UIAutomationCore (UIAutomationCore.dll والملفات التابعة لها)الكود الأساسي (يُسمى أحيانًا نواة UIA) الذي يُعنى بالتواصل بين المزوّدين والعملاء. كما توفر نواة أتمتة واجهة المستخدم واجهات برمجة التطبيقات (API) للمزوّدين والعملاء للتطبيقات والعملاء غير المُدارة؛ ولا تتطلب التطبيقات غير المُدارة (سواءً كانت عملاء أو مزوّدين) التجميعات المُدارة المذكورة أدناه.
واجهة برمجة تطبيقات الموفر المُدار (UIAutomationProvider.dll والملفات التابعة لها)

مجموعة من تعريفات ووظائف واجهة المستخدم التي تُنفذها تطبيقات موفر واجهة المستخدم المُدارة. الموفرون عبارة عن كائنات تُقدم معلومات حول عناصر واجهة المستخدم وتستجيب للمدخلات البرمجية.

واجهة برمجة تطبيقات العميل المُدارة (UIAutomationClient.dll والملفات التابعة لها)مجموعة من تعريفات ووظائف واجهة المستخدم لتطبيقات عميل UIA المُدارة.
UIAutomationClientsideProviders.dllمجموعة من تطبيقات موفر واجهة المستخدم الرسومية (UIA) لعناصر تحكم Win32 القديمة وتطبيقات MSAA. يتوفر موفر جانب العميل هذا لتطبيقات العميل المُدارة بشكل افتراضي.

عناصر

تُتيح واجهة المستخدم الرسومية (UIA) كل جزء من واجهة المستخدم لتطبيقات العميل كعنصر أتمتة. وتُخزَّن العناصر في بنية شجرية، حيث يكون سطح المكتب هو العنصر الجذر.

تكشف كائنات عنصر التشغيل الآلي عن الخصائص المشتركة لعناصر واجهة المستخدم التي تمثلها. إحدى هذه الخصائص هي نوع عنصر التحكم، الذي يحدد مظهره الأساسي ووظائفه ككيان واحد يمكن التعرف عليه (مثل زر أو مربع اختيار).

بالإضافة إلى ذلك، تعرض العناصر أنماط تحكم توفر خصائص خاصة بأنواع التحكم الخاصة بها. كما تعرض أنماط التحكم طرقًا تمكّن العملاء من الحصول على مزيد من المعلومات حول العنصر وإدخال البيانات.

يمكن للعملاء تصفية العرض الأولي للشجرة كعرض تحكم أو عرض محتوى. كما يمكن للتطبيقات إنشاء عروض مخصصة.

شجرة

يحتوي هيكل واجهة المستخدم (UIA) على عنصر جذر يُمثل سطح المكتب الحالي، وتمثل عناصره الفرعية نوافذ التطبيقات. قد يحتوي كل عنصر فرعي من هذه العناصر على عناصر تُمثل أجزاء من واجهة المستخدم، مثل القوائم والأزرار وأشرطة الأدوات وقوائم الاختيار. بدورها، يمكن أن تحتوي هذه العناصر على عناصر أخرى، مثل عناصر القوائم.

لا تُعدّ شجرة UIA بنيةً ثابتة، ونادرًا ما تُرى بكاملها لأنها قد تحتوي على آلاف العناصر. تُبنى أجزاء الشجرة حسب الحاجة، ويمكن أن تخضع الشجرة لتغييرات عند إضافة العناصر أو نقلها أو إزالتها.

أنواع التحكم

أنواع عناصر التحكم UIA هي معرفات معروفة يمكن استخدامها للإشارة إلى نوع عنصر التحكم الذي يمثله عنصر معين، مثل مربع التحرير والسرد أو الزر.

يُتيح وجود مُعرّف معروف لأجهزة التكنولوجيا المساعدة تحديد أنواع عناصر التحكم المتاحة في واجهة المستخدم وكيفية التفاعل معها بسهولة أكبر. ويتوفر تمثيلٌ سهل القراءة لمعلومات نوع عنصر التحكم في واجهة المستخدم كخاصية LocalizedControlType، يُمكن تخصيصها من قِبل مطوري عناصر التحكم أو التطبيقات.

أنماط التحكم

توفر أنماط التحكم طريقة لتصنيف وظائف عنصر التحكم وعرضها بشكل مستقل عن نوع عنصر التحكم أو مظهره.

تستخدم واجهة المستخدم الرسومية (UIA) أنماط التحكم لتمثيل سلوكيات التحكم الشائعة. على سبيل المثال، Invokeيُستخدم نمط التحكم الأول للتحكمات التي يمكن استدعاؤها (مثل الأزرار)، بينما Scrollيُستخدم نمط التحكم الثاني للتحكمات التي تُعرض على شكل نوافذ قابلة للتمرير (مثل مربعات القوائم، أو قوائم العرض، أو مربعات التحرير والسرد). ولأن كل نمط تحكم يمثل وظيفة منفصلة، ​​يمكن دمجها لوصف مجموعة الوظائف الكاملة التي يدعمها عنصر تحكم معين.

ملكيات

تُتيح موفرو واجهة المستخدم الرسومية (UIA) خصائص لعناصر واجهة المستخدم الرسومية وأنماط التحكم. تُمكّن هذه الخصائص تطبيقات عميل واجهة المستخدم الرسومية من اكتشاف معلومات حول أجزاء واجهة المستخدم، وخاصة عناصر التحكم، بما في ذلك البيانات الثابتة والديناميكية.

الفعاليات

يُعدّ إشعار أحداث واجهة المستخدم الرسومية (UIA) ميزةً أساسيةً للتقنيات المساعدة (AT) مثل قارئات الشاشة ومكبرات الشاشة. تتتبع هذه التطبيقات التابعة لواجهة المستخدم الرسومية الأحداث التي تُصدرها جهات توفير واجهة المستخدم الرسومية والتي تحدث داخل واجهة المستخدم الرسومية، وتستخدم هذه المعلومات لإخطار المستخدمين النهائيين.

يتم تحسين الكفاءة من خلال السماح لتطبيقات الموفر برفع الأحداث بشكل انتقائي، اعتمادًا على ما إذا كان أي من العملاء مشتركًا في تلك الأحداث، أو عدم الاشتراك على الإطلاق، إذا لم يكن هناك أي عملاء يستمعون لأي أحداث.

نمط النص

تكشف واجهة المستخدم الرسومية (UIA) عن المحتوى النصي، بما في ذلك سمات التنسيق والنمط، لعناصر التحكم النصية في المنصات التي تدعمها. وتشمل هذه العناصر، على سبيل المثال لا الحصر، إطار عمل Microsoft .NET TextBox، RichTextBoxبالإضافة إلى ما يعادلها في Win32.

يتم عرض المحتوى النصي لعنصر تحكم باستخدام نمط TextPatternالتحكم، الذي يُمثل محتوى حاوية نصية كتدفق نصي. TextPatternويتطلب ذلك بدوره دعم الفئة TextPatternRangeلعرض سمات التنسيق والنمط. TextPatternRangeيدعم TextPatternهذا النمط تمثيل نطاق نصي متصل في حاوية نصية باستخدام نقاط Startالنهاية End. يمكن تمثيل نطاقات نصية متعددة أو منفصلة بأكثر من TextPatternRangeكائن واحد. TextPatternRangeيدعم هذا النمط وظائف مثل الاستنساخ والتحديد والمقارنة والاسترجاع والتنقل.

أتمتة واجهة المستخدم للاختبار الآلي

يمكن أن يكون إطار عمل UIA مفيدًا أيضًا للوصول البرمجي في سيناريوهات الاختبار الآلي. فبالإضافة إلى توفير حلول أكثر دقة لإمكانية الوصول، فهو مصمم خصيصًا لتوفير وظائف قوية للاختبار الآلي.

تتيح إمكانية الوصول البرمجي إمكانية محاكاة أي تفاعل وتجربة تُعرض من خلال تفاعلات المستخدم التقليدية، وذلك عبر البرمجة. وتُمكّن واجهة المستخدم الرسومية (UIA) الوصول البرمجي من خلال خمسة مكونات:

  • تسهل شجرة واجهة المستخدم التنقل عبر البنية المنطقية لواجهة المستخدم من أجل إمكانية الوصول والأتمتة.
  • عناصر أتمتة واجهة المستخدم هي مكونات فردية في واجهة المستخدم.
  • توفر خصائص أتمتة واجهة المستخدم معلومات محددة حول عناصر واجهة المستخدم أو نمط التحكم.
  • تحدد أنماط التحكم في أتمتة واجهة المستخدم جانبًا معينًا من وظائف أو ميزات عنصر التحكم؛ ويمكن أن تتكون من معلومات عن الخاصية والطريقة والحدث والبنية.
  • توفر أحداث أتمتة واجهة المستخدم آلية للاستجابة للتغييرات والإشعارات في معلومات أتمتة واجهة المستخدم.

التوافر

كانت واجهة المستخدم الرسومية (UIA) متاحة في البداية على نظامي التشغيل ويندوز فيستا وويندوز سيرفر 2008، كما أصبحت متاحة أيضًا لنظامي التشغيل ويندوز إكس بي وويندوز سيرفر 2003 كجزء من إطار عمل .NET 3.0. وقد تم دمجها مع جميع إصدارات ويندوز اللاحقة، وصولاً إلى ويندوز 7. [ 5 ]

إلى جانب منصات ويندوز، يتضمن مشروع Olive (وهو عبارة عن مجموعة من المكتبات الإضافية لنواة Mono التي تهدف إلى دعم إطار عمل .NET) مجموعة فرعية من WPF ( PresentationFrameworkو WindowsBase) وأتمتة واجهة المستخدم. [ 6 ]

يُعد مشروع Mono Accessibility التابع لشركة نوفيل تطبيقًا لمواصفات موفر UIA وعميله، وهو مُصمم خصيصًا لإطار عمل Mono. بالإضافة إلى ذلك، يوفر المشروع جسرًا إلى مجموعة أدوات إمكانية الوصول (ATK) لتقنيات المساعدة (ATs) في نظام Linux. وتعمل نوفيل أيضًا على تطوير جسر لتقنيات المساعدة القائمة على UIA للتفاعل مع التطبيقات التي تُطبّق ATK. [ 7 ]

  • إمكانية الوصول النشطة من مايكروسوفت (MSAA) : تُعدّ واجهة المستخدم الرسومية (UIA) خليفةً لـ MSAA. ونظرًا لوجود تطبيقات لا تزال تعتمد على MSAA، تُستخدم جسورٌ لتمكين التواصل بين تطبيقات UIA وMSAA. ولتبادل المعلومات بين واجهتي برمجة التطبيقات (APIs)، تم تطوير وكيل MSAA-to-UIA وجسر UIA-to-MSAA. الأول هو مُكوّن يستهلك معلومات MSAA ويُتيحها عبر واجهة برمجة تطبيقات عميل UIA. أما الثاني، فيُمكّن تطبيقات العميل التي تستخدم تطبيقات الوصول إلى MSAA والتي تُطبّق UIA. [ 8 ]
  • تطبيقات الإنترنت الغنية سهلة الوصول (ARIA) : يمكن لـ UIA AriaRoleوخصائصها AriaPropertiesتوفير الوصول إلى قيم سمات ARIA المقابلة لعنصر HTML (والذي يمكن عرضه كعنصر أتمتة بواسطة متصفحات الويب). كما يتوفر ربط عام من سمات ARIA إلى UIA. [ 3 ]
  • واجهة برمجة تطبيقات أتمتة ويندوز : بدءًا من ويندوز 7، تقوم مايكروسوفت بتجميع تقنيات إمكانية الوصول الخاصة بها ضمن إطار عمل يُسمى واجهة برمجة تطبيقات أتمتة ويندوز. ستكون كل من MSAA وUIA جزءًا من هذا الإطار. للاطلاع على الإصدارات الأقدم من ويندوز، راجع KB971513. [ 9 ]
  • مشروع Mono Accessibility : في 7 نوفمبر 2007، أعلنت مايكروسوفت ونوفيل ، بعد إتمام عام من اتفاقية التوافق التشغيلي بينهما، عن تمديد الاتفاقية لتشمل إمكانية الوصول. [ 10 ] [ 11 ] وبالتحديد، أُعلن أن نوفيل ستطور مُهايئًا مفتوح المصدر يسمح لإطار عمل UIA بالعمل مع مشاريع إمكانية الوصول الحالية في لينكس، مثل مجموعة أدوات إمكانية الوصول في لينكس (ATK)، المُرفقة مع أنظمة SUSE Linux Enterprise Desktop و Red Hat Enterprise Linux و Ubuntu Linux . وهذا من شأنه أن يجعل UIA متوافقًا مع مختلف المنصات.

مراجع

  1. داريل ك. تافت: مايكروسوفت تروج لتقنية إمكانية الوصول عبر المنصات [ تمت إزالة الرابط ] ، EWeek (2005-11-28)، تم الوصول إليه في 2007-02-07.
  2. مايكروسوفت: سيتم تقديم نموذج إمكانية الوصول الجديد من مايكروسوفت كحل متعدد المنصات للصناعة ، تم الاطلاع عليه في 2007-02-06.
  3. 1 2 شبكة مطوري مايكروسوفت: مواصفات أتمتة واجهة المستخدم ووعد المجتمع
  4. وصف واجهة برمجة تطبيقات أتمتة ويندوز
  5. مايكروسوفت: نظرة عامة على أتمتة واجهة المستخدم ، تم الاطلاع عليه بتاريخ 2007-02-07.
  6. أحادي اللون: زيتوني .
  7. ميغيل دي إيكازا وفيليب كوهين: Mono وMainsoft وتطوير المؤسسات عبر المنصات مؤرشف في 2008-06-17 في Wayback Machine ، مجلة Enterprise Open Source (2007-01-14)، تم الوصول إليه في 2007-02-07.
  8. شبكة مطوري مايكروسوفت (MSDN): مايكروسوفت، أتمتة واجهة المستخدم وإمكانية الوصول النشط من مايكروسوفت ، تم الوصول إليه في 2007-02-07.
  9. KB971513: تنزيل واجهة برمجة تطبيقات أتمتة ويندوز
  10. مايكروسوفت: مايكروسوفت ونوفيل تحتفلان بعام التوافق التشغيلي، وتوسعان اتفاقية التعاون .
  11. الصفحة الرئيسية لمشروع Mono Accessibility .