Автоматизация WPF – поиск и структура WinForms элементов

Автоматизация WPF – поиск и структура WinForms элементов

В предыдущей статье мы рассмотрели определение WPF элементов. Проект автоматизации можно скачать по ссылке GitHub.

WinForms elements manipulation with TestStack White

Класс MessageBox.cs представляет объявление конструктора окна сообщений WinForms, пару контролов и действия над ними.

MessageBox следует особенностям паттерна Object. Элементы являются приватными (private) свойствами. Действия над ними – общедоступные (public) методы.

Конструктор класса принимает объект текущего окна. Элементы находятся с помощью фреймворка White:

 SearchCriteria

SearchCriteria используется для поиска элементов. Поиск можно осуществлять по следющим свойствам (критериям): Text, ControlType, AutomationId, NativeProperty, Framework. Отсюда возникают некоторые проблемы в использовании фреймворка White для автоматизации комплексных приложений. Может быть несколько текстовых полей с одним и тем же типом (ByControlType == Edit) и без текста (AndByText == “”). Это можно решить путем индексирования при вызове таких полей.

UISpy

Поиск правильного SearchCriteria выполняется с помощью инструмента UIAVerify. Можно скачать по ссылке.

happy

“Dialog” – это окно сообщения, которое наследуется от “MainWindow”. Оно имеет пустое название и два элемента: кнопку OK и текстовое сообщение. Изображение выше показывает позицию сообщения. Его тип ControlType == ControlType.Text. Одного этого достаточно для нахождения элемента, потому что на окне сообщения только одно текстовое поле. Теперь мы можем возвращать текст сообшения и сравнивать с ожидаемым результатом. Кнопка OK находится с помощью поисковых критериев ControlType и text. В случае разных локализаций следует использовать только ControlType.

Таким образом мы определили все объекты WinForms и WPF. В следующей статье мы рассмотрим, как структурировать их вызовы в тестах.