2013-03-05 3 views
1

Я использую кодированные ui для автоматизации. Мне нужно подсчитать, сколько окон открыто для тестового примера, но понятия не имеет, как это сделать. Попробовали использовать find и получить applicationundertest и гулять с детьми, но похоже, что окна не принадлежат ему.Как узнать количество открытых окон в тестируемом приложении

У кого-нибудь есть опыт?

ответ

1

Большинство структур пользовательского интерфейса есть коллекция открытых окон.

Winforms:

int count = Application.OpenForms.Count; 

FormCollection, содержащий все открытые в данный момент формы, принадлежащие этой приложения.

WPF:

int count = Application.Current.Windows.Count; 

Окно ссылка автоматически добавляется в Windows, как только окно инстанциируется на пользовательском интерфейсе (UI) резьбы; окна, которые создаются рабочими потоками, не добавляются. Ссылка на окно автоматически удаляется после того, как было обработано событие закрытия, и перед его закрытым событием.

+1

Мой вопрос касается того, как это сделать, используя инфраструктуру автоматизации codedui. Это работает внутри приложения, но не из кодированного ui, поскольку он дает окно того, что в настоящее время работает. Дайте мне знать, если я что-то упустил. –

0

Просто создайте статический Int в основной инстанции и рассчитывать его во всех формах конструкторам и вниз в FormClosing случае

Возможно этот короткий код будет полезно

this.Load += delegate { mainInstance.myCount++; }; 
this.FormClosing += delegate { mainInstance.myCount--; }; 
+0

Поскольку это для тестирования, я бы привязал событие Load к форме вместо добавления в конструктор. – jzx

Смежные вопросы