При выполнении кодированного тестов пользовательского интерфейса на приложения WPF, кнопка WPF Мне нужно, можно найти следующим образом:Как получить элементы Viewbox/Canvas/Path для тестирования кодированного интерфейса?
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 для UI?
Возможно, я пропустил совместимый тип из пространства имен Microsoft.VisualStudio.TestTools.UITesting.WpfControls
, или, может быть, я должен получить нестандартный тип (например, из Canvas) и переопределить метод OnCreateAutomationPeer
, а затем создать точку автоматизации для мой класс DerivedCanvas? Я новичок в тестировании кодированного интерфейса, поэтому, если второе решение решает проблему, как это можно реализовать?
Из любопытства, почему вы не используете карту пользовательского интерфейса? По крайней мере, вы можете исследовать сгенерированный код, чтобы узнать, как он попадает к этим элементам. –
@ DanielMann Вы имеете в виду код, созданный утилитой Coded UI Test Builder? К сожалению, он не может «видеть» холст. Если я, например, щелкнуть холст, содержащийся в окне, он будет распознавать только Window. Но для таких элементов, как TextBlock или Button, все будет в порядке. – undermind