WPF, Проект Белый и Инфраструктура - PullRequest
3 голосов
/ 27 мая 2010

Я пытаюсь использовать Project White для написания автоматических тестов для моего приложения WPF. Все идет хорошо, пока я не попытаюсь взаимодействовать с элементами управления Infragistics. Кто-нибудь имел опыт работы с этой настройкой, и не могли бы вы опубликовать пример того, как я могу (например) взаимодействовать с XamRibbon или XamOutlookBar?

1 Ответ

2 голосов
/ 14 июня 2010

Боюсь, что это общий ответ, но если белые не помогают, вы можете напрямую использовать Microsoft UI Automation.

Сначала найдите свой контроль. Если у него есть WPF "Имя", то, вероятно, у него есть идентификатор автоматизации, который соответствует имени:

AutomationElement element = AutomationElement.Root.FindFirst(
    TreeScope.Descendants,
    new PropertyCondition(AutomationElement.AutomationIdProperty, <whatever>))

В качестве альтернативы вы можете использовать такие вещи, как NameProperty, который в основном отображается на текст или заголовки, или ControlTypeProperty или ClassProperty. Вы всегда можете использовать FindAll, чтобы предоставить вам больше информации о доступных элементах управления.

Когда вы найдете свой элемент управления, распечатайте его поддерживаемые шаблоны и свойства:

element.GetSupportedPatterns()
element.GetSupportedProperties()

Свойства возвращают информацию. Шаблоны такие вещи, как ListItemPattern, GridPattern и позволяют вам получить доступ к более специфичным для компонента значениям. Вы можете найти шаблон или свойство, которое дает вам то, что вам нужно. Белый частично построен поверх этого, поэтому он может помочь вам определить, какие компоненты белого цвета вы могли бы использовать. Например:

((TogglePattern)Element.GetCurrentPattern(TogglePattern.Pattern)).Toggle()

Snoop - приложение, которое может помочь вам получить эту информацию, не проходя распечатки: http://snoopwpf.codeplex.com/

...