لماذا يظهر منشئ اختبار واجهة المستخدم المشفرة MSAA لعناصر التحكم في WPF بدلاً من UIA
-
25-09-2019 - |
سؤال
سؤال
عندما أقوم بتحديد عنصر تحكم في WPF مع Crossline من Visual Studio 2010 ، فإن منشئ اختبار واجهة المستخدم المشفرة (لقطات الشاشة) ، يوضح أن تقنية إمكانية الوصول المستخدمة كانت MSAA. لماذا ليس UIA؟
معلومة اضافية
أحاول الخروج من ميزة اختبار واجهة المستخدم المشفرة الجديدة التي يتم شحنها باستخدام VS2010 و TFS2010.
أعلم أن هناك تقنية إمكانية الوصول إلى واجهة المستخدم من Microsoft:
- إمكانية الوصول النشط Microsoft (MSAA): التكنولوجيا القديمة ، كوم
- Microsoft UI Automation (UIA): أحدث التكنولوجيا ، جزء من .NET 3.0 ، نموذج الكائن القائم
عندما أقوم بإنشاء اختبار واجهة مستخدم مشفر وإلقاء نظرة على الكود الذي تم إنشاؤه ، أرى أنه يتم النقر على عناصر التحكم بناءً على مواضع البكسل ، بدلاً من-ما أتوقعه بجرأة-مقابض مع كائنات حقيقية.
أفترض أن هذا النوع من الوصول يجعل الاختبارات أكثر هشاشة لنقل عناصر واجهة المستخدم. في حين أن الاختبارات ستكون أكثر استقرارًا إذا كانت UIA في العمل ؛ طالما أنني لا أغير شجرة واجهة المستخدم ، لا شيء يجب أن ينكسر.
ماذا أخطأت؟
المحلول
انه قضية معروفة مع Visual Studio 2010 Ultimate RC.
نصائح أخرى
فيما يتعلق بـ "مواضع البكسل" في السؤال الأصلي. في معظم الأوقات ، ليست هناك حاجة إلى إحداثيات البكسل. تم العثور على عنصر التحكم عن طريق البحث من خلال التسلسل الهرمي لعناصر التحكم على الشاشة. الإحداثيات المسجلة هي ضمن السيطرة. هذا مطلوب لبعض الضوابط المعقدة. علي سبيل المثال. يحتوي زر مع مثلث لتوسيع مجموعة من الخيارات على منطقتين قابلة للنقر: المنطقة الرئيسية والمثلث. انظر إدخال مدونة MSDN هذا لمزيد من التفاصيل: http://blogs.msdn.com/b/mathew_aniyan/archive/2012/03/16/faq-why-are-we-using-coordinate-Actions-in-coded-ui-test.aspx