Автоматизация тестирования - приложение Win32 - автоматизация White / UI - проблема с распознаванием объектов - PullRequest
2 голосов
/ 02 июня 2011

Я ищу альтернативу для существующих тестов, написанных на QTP, для моего приложения Win32, написанного на Borland C ++. Мой кандидат - White, основанный на UI Automation, потому что это нативное решение, Я могу создавать свои тесты с использованием .NET / C # и легко интегрировать их с nUnit и Hudson.

белый http://white.codeplex.com

MS UI Automation http://msdn.microsoft.com/en-us/library/ms747327.aspx

UI Verify http://uiautomationverify.codeplex.com

Я использую UI Verify в качестве шпиона для определения свойств объектов, которые я хочу найти в своих тестах. Более или менее, когда я вижу что-то в шпионе, я могу найти это с помощью UI Automation / White. Вообще у меня нет особых проблем с распознаванием объектов но когда я пытаюсь найти какой-либо контент внутри вкладки, содержащейся в панели вкладок или попробуйте просмотреть MenuItems строки меню, тогда проблема появляется.

UI Automation / UI Verify работает проводным способом. Когда я запускаю UI Verify (версия 1.0), я вижу, что объекты могут быть зарегистрированы правильно только тогда когда я устанавливаю опцию «Отслеживание фокуса» и нажимаю на целевые объекты или меняю на них курсор клавиатуры. Иначе их невозможно найти. UI Verifier может показать мне потомков моей панели «вкладок». Но я не могу найти их, используя UI Automation / White. Это пример кода:

Tab tab = window.Get (); ITabPage tabPage = tab.SelectedTab; AutomationElementCollection newCol = tabPage.AutomationElement.FindAll (TreeScope.Descendants, Condition.TrueCondition); window.Get ( "buttonName");

коллекция пуста, хотя шпион видит детей.

  1. Есть ли у кого-нибудь из вас опыт работы с библиотекой автоматизации White / UI, которой он / она хотел бы поделиться со мной?
  2. Я хочу реализовать функцию отслеживания от шпиона до моих тестов. Вы можете помочь мне с этим? Я пытаюсь изучить код шпиона МАУ Verify. Я думаю, что есть два класса, отвечающие за отлов объектов: FocusChangeListener и FocusTracer - это код:

http://uiautomationverify.codeplex.com/SourceControl/changeset/view/9992#214260 http://uiautomationverify.codeplex.com/SourceControl/changeset/view/9992#214192

Требования: 1. Windows SDK 2. .NET 3.5 3. Белый 4. Код подтверждения МАУ

  1. Есть ли у вас лучшая альтернатива для White / UI Automation?

R.

1 Ответ

1 голос
/ 19 апреля 2012

Не могли бы вы, R или YoYo, поместить свою форму скомпилированной или в исходных кодах (желательно без внутренней логики) где-нибудь в общую папку? Я никогда не видел элемент управления, который не будет перехвачен с помощью автоматизации пользовательского интерфейса, если UIAVerify увидит его. Я видел такие окна, которые могли быть обнаружены только с помощью функции отслеживания фокуса в UIAVerify. В этом случае такое окно недоступно поиску UI Automation.

Что касается элемента управления, вы уверены, что элементы управления, с которыми вы боретесь, имеют свойство Name? Может быть, это значение доступно только через ValuePattern, а не по имени?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...