Кодированный пользовательский интерфейс не распознает элементы управления последовательно - PullRequest
1 голос
/ 01 апреля 2012

В моем приложении WPF реализован механизм призмы. Есть несколько элементов управления меню, которые загружаются в контейнер при изменении страницы. Я пытаюсь использовать кодированный интерфейс, чтобы добавить утверждения к этим кнопкам.

Когда CUIT используется на первом экране, кажется, что ничего не распознается. Но на втором экране они узнаются. В коде для их загрузки нет изменений, за исключением того, что элементы управления на первом экране находятся на глубине одного уровня (это показывает Snoop).

Нужно ли по-прежнему иметь код одноранговых узлов автоматизации, который будет написан в конце исходного кода, чтобы представить элементы управления, хотя они являются стандартными элементами управления WPF?

Что еще я могу попытаться, чтобы их постоянно распознавали?

Inspect.exe, UIA Verify, Snoop отображает все элементы управления WPF независимо от того, на каком экране я нахожусь.

1 Ответ

2 голосов
/ 03 апреля 2012

Хорошо, так что я думаю, что понимаю. При переходе на первую страницу и попытке выделить или выбрать элемент с помощью CodedUI Test Builder или Spy ++ элементы управления не распознаются, но распознаются на другой странице.

Является ли контейнер, в котором находятся элементы управления на первой странице, каким-либо типом пользовательского элемента управления или общим элементом управления WPF? Если это пользовательский элемент управления, вам нужно будет реализовать класс AutomationPeer для выполнения значимых действий над элементом управления. Если все, что вам нужно сделать, это нажать кнопку, вы можете вручную написать код, чтобы вручную щелкнуть внутри родительского контейнера.

...