الحصول على واجه المستخدم التنفيذ التلقائي عناصر
ملاحظة |
---|
Th هو الوثائق هو المقصودة لإطار عمل.NET المطورين الذين يرغبون في استخدام المدارة UI Automationالفئات المعرفة في System.Windows.Automationمساحة الاسم.للحصول على أحدث المعلومات حول UI Automation، راجع API التنفيذ التلقائي Windows: أتمتة واجه المستخدم. |
يصف هذا الموضوع بالطرق المختلفة للحصول على AutomationElementالكائنات من أجل واجهة المستخدم (UI)عناصر.
تنبيه |
---|
إذا كان قد حاول تطبيق العميل إلى بحث العناصر في واجهة مستخدم الخاصة به، يجب أن تجعل الجميع UI Automationالمكالمات تشغيل مؤشر ترابط منفصلة.لمزيد من المعلومات، راجع واجه المستخدم التنفيذ التلقائي مؤشر الترابط التشعبي المشاكل. |
يشتمل هذا الموضوع على الأقسام التالية.
- جذر عنصر
- الشروط
- نطاق بحث
- البحث عن معروف عنصر
- البحث عن عناصر في شجرة فرعية
- walking شجرة فرعية
- طرق غير ذلك لاسترداد عنصر
- موضوعات ذات صلة
جذر عنصر
الجميع عمليات البحث عن AutomationElementيجب أن تحتوي الكائنات البدء-المكان. يمكن أن يكون أي عنصر، وسطح المكتب، بما في ذلك نافذة التطبيقات، أو عنصر تحكم.
العنصر الجذر لسطح المكتب، والذي يتم descended الجميع العناصر، هو تم الحصول عليها من ثابتة AutomationElement.RootElementخاصية.
تنبيه |
---|
بشكل عام، يجب أن يحاول إلى الحصول على الأطفال المباشر فقط من RootElement.قد يكرر بحث عن الفروع من خلال المئات أو الآلاف حتى من عناصر، ربما ينتج عن ذلك تجاوز سعة مكدس.إذا كنت بصدد إلى الحصول على عنصر معين في المستوى أقل، ويجب أن يبدأ بحث من نافذة تطبيق أو من حاوية في المستوى أدنى. |
الشروط
معظم التقنيات تستخدمها لاسترداد UI Automationالعناصر، يجب تحديد Condition، الذي هو التعيين من المعايير في تعريف ما هي العناصر التي تريد استرداد.
أبسط شرط هو TrueCondition, تعيين أن تكون الجميع العناصر الموجودة في نطاق بحث إرجاع كائن معرفة مسبقاً. FalseCondition، حديث منTrueCondition، هو أقل مفيدة، كما أنه قد منع أي عناصر تم العثور على.
يمكن استخدام ثلاثة حالات غير ذلك تم تعريفها مسبقاً وحدها أو مع الحالات الأخرى: ContentViewCondition ، ControlViewCondition و RawViewCondition RawViewCondition، يستخدم من قبل نفسه، هو يساويTrueCondition، لأنه لا يصفي العناصر بواسطة بهمIsControlElementأوIsContentElementخصائص.
شروط غير ذلك مضمنة من واحد أو المزيد PropertyConditionالكائنات، كل منها بتعيين القيمة خاصية. على سبيل المثال، على PropertyConditionقد تحديد هذا العنصر هو ممكناً، أو أنه يدعم معينة نمط عنصر التحكم .
يمكن دمج شروط استخدام منطق منطقي بواسطة إنشاء الكائنات من أنواع AndCondition، OrCondition، و NotCondition.
نطاق بحث
القيام بعمليات بحث بواسطة استخدام FindFirstأو FindAllيجب أن يكون نطاق تماما مثل بدء التشغيل-موضع.
يعرف نطاق المساحة الموجودة حول بدءاً من المكان الذي هو ليتم البحث فيه. قد يتضمن هذا عنصر نفسه بين العناصر المشابهة له، الأصل، تضمين أصولا الخاص به، توابعه الفوري والتوابع الخاصة به.
نطاق بحث هو المعرفة من قبل مجموعة bitwهوe من قيم من TreeScopeالتعداد.
البحث عن معروف عنصر
للبحث عن عناصر معروفة، المعرف بواسطة به Name، AutomationId، أو بعض غير ذلك خاصية أو مجموعة من الخصائص، فإنه هو أسهل للاستخدام FindFirstالأسلوب. إذا كان العنصر ما هو يمكن أن يكون نافذة لتطبيق ما، بدءاً من يؤشر بحث RootElement.
بهذه الطريقة للبحث عن UI Automationعناصر مفيد في تلقائية وحدات سيناريو الاختبار.
البحث عن عناصر في شجرة فرعية
إلى البحث عن الجميع العناصر الاجتماع معايير معينة تتعلق إلى لعناصر معروفة، يمكنك استخدام FindAll. على سبيل المثال، يمكنك استخدام هذه الطريقة إلى استرداد عناصر قائمة أو عناصر قائمة من قائمة أو قائمة، أو إلى التعرف على الجميع عناصر التحكم الموجودة في صندوق حوار.
walking شجرة فرعية
في حالة لا معرفة سابقة بالتطبيقات التي قد تستخدم عميل البريد مع، يمكنك بناء شجرة فرعية لكافة عناصر الاهتمام باستخدام TreeWalkerفئة. التطبيق الخاص بك قد قم بترتيب هو في استجابة إلى حدث تم تغييره على التركيز؛ التي هو، عند تطبيق أو عنصر تحكم تلقي تركيز إدخال، يفحص العميل "أتمتة واجهة المستخدم" للأطفال وربما الجميع العمليات التابعة لها من العناصر التي تم التركيز عليها.
هناك طريقة أخرى في أي TreeWalkerيمكن استخدامه هو إلى تعريف ancesإلىrs الخاص العنصر. على سبيل المثال، بواسطة walking لأعلى الشجرة يمكن تحديد الإطار الأصل من عنصر تحكم.
يمكنك استخدام TreeWalkerأما بإنشاء كائن فئة (تعريف عناصر الاهتمام بتمرير Condition)، أو باستخدام واحد الإجراءات التالية المعرفة مسبقاً الكائنات التي تم تعريفها كحقول من TreeWalker.
البحث عن العناصر فقط له IsContentElementهو خاصية true. |
|
البحث عن العناصر فقط له IsControlElementهو خاصية true. |
|
البحث عن الجميع العناصر. |
بعد الحصول على TreeWalker، بواسطة هو مباشرة. ببساطة استدعاء Getأساليب إلى التنقل بين عناصر في شجرة فرعية.
Normalizeالطريقة التي يمكن استخدامها للتنقل إلى عنصر في شجرة فرعية من عنصر آخر الذي هو ليس جزء من عرض. ل مثال، فرض تاريخ الإنشاء طريقة عرض لشجرة فرعية باستخدام ContentViewWalker. يتلقى تطبيق الخاص بك ثم إعلام التي شريط التمرير تلقي تركيز إدخال. لأن شريط تمرير هو لا محتوى عنصر، فإنه هو غير موجودة في طريقة عرض شجرة فرعية. ومع ذلك، يمكنك تمرير AutomationElementيمثل شريط مرور إلى Normalizeواسترداد عنصر أصل الأقرب الذي هو في طريقة عرض المحتوى.
طرق غير ذلك لاسترداد عنصر
بالإضافة إلى عمليات البحث و التنقل، يمكنك استرداد أما AutomationElementبالطرق التالية.
من حدث
عندما يتلقى تطبيق الخاص بك UI Automationحدث والكائن المصدر التي تم تمريرها إلى معالج الأحداث الخاص بك هو AutomationElement. ل مثال، إذا اشتركت لإحداث تم تغييره على تركيز، المصدر الذي تم تمريره إلى جهاز AutomationFocusChangedEventHandlerهو العنصر الذي تم تلقي تركيز.
لمزيد من المعلومات، راجع الاشتراك في أحداث Auإلىmation إلى واجهة المستخدم.
من نقاط
إذا كان لديك إحداثيات شاشة (على سبيل المثال، موضع رأس مؤشر)، يمكنك استرداد AutomationElementباستخدام ثابت FromPointالأسلوب.
من معالجة الإطار
إلى استرداد عنصر AutomationElementمن HWND، استخدم الثابتة FromHandleالأسلوب.
من عنصر تحكم التركيز
يمكنك الحصول AutomationElementالذي يمثل التركيز عنصر تحكم من ثابت FocusedElementخاصية.
راجع أيضًا:
المهام
بحث واجه المستخدم أتمتة تعتمد تشغيل شرط خاصية عنصر
التنقل بين واجه المستخدم التنفيذ التلقائي عناصر مع TreeWalker