При выполнении закодированных тестов пользовательского интерфейса в приложении WPF нужную мне кнопку WPF можно найти следующим образом:
WpfButton button = new WpfButton(mainWindow);
button.SearchProperties[WpfButton.PropertyNames.AutomationId] = "btn";
button.WindowTitles.Add("MainWindow");
После этой инициализации я могу успешно выполнять любые проверки и проверки.
Проблемы начинаются, когда я пытаюсь проверить состояние элемента ViewBox, содержащего Canvas, который, в свою очередь, содержит Path. Ни один из этих элементов не имеет аналогового типа из пространства имен Microsoft.VisualStudio.TestTools.UITesting.WpfControls
. После небольшого расследования я обнаружил, что эти типы также не имеют переопределенного метода OnCreateAutomationPeer
.
Итак, как удобнее всего получить Canvas, ViewBox или Path для тестирования пользовательского интерфейса?
Может быть, я пропустил совместимый тип из пространства имен Microsoft.VisualStudio.TestTools.UITesting.WpfControls
или, может быть, я должен получить пользовательский тип (например, из Canvas) и переопределить в нем метод OnCreateAutomationPeer
, а затем создать коллегу автоматизации для моего класса DerivedCanvas? Я новичок в тестировании закодированного пользовательского интерфейса, поэтому, если второе решение решает проблему, как его можно реализовать?