Test Runner не может найти элементы управления во время воспроизведения

57
4

Я только что начал с Microsoft Test Manager 2015 и создал два тестовых примера.

Первый из них включает в себя щелчок по значку в трее и выбор записи оттуда - что отлично работает.

Второй случай немного сложнее, я хотел заполнить форму в окне WPF и нажать несколько кнопок.

Запись прошла без проблем, но воспроизведение не работает вообще. Он должен начинаться с выбора TabItem, выбора другого TabItem, который находится внутри предыдущего выбранного TabItem, а затем заполнить текстовые поля и нажать кнопку и подтвердить два диалога сообщений.

Проблема заключается в том, что TestRunner не может найти какой-либо из моих элементов управления. Даже если я выберу правильный TabItem и просто попробую выполнить один из шагов "enter someText here", это займет некоторое время, а затем выбрасывает исключение на моем лице, которое, грубо говоря, говорит, что повторение выбранного шага не может быть завершена, потому что не удалось найти элемент управления, соответствующий свойствам поиска (?). Затем следует список:

TechnologyName: 'UIA'
FrameworkId: 'WPF'
ControlType: 'TabPage'
AutomationId: 'sometabname'

все это правильно. Если я попытаюсь выполнить другой тестовый шаг, он говорит в основном то же самое, но вместо "ControlType: TabPage" он говорит "ControlType: Edit".

Я не уверен, как исходить отсюда. Я сделал некоторые поиски, но все, что я мог найти, это вопросы о настройке/настройке UIAutomation, но насколько я могу судить, я не могу влиять/контролировать это непосредственно в MTM.

редактировать

После упрощения тестового "случая" (просто нажмите кнопку прерывания, которая находится непосредственно в окне/первой сетке) и отредактировав файл mtm.exe.config и включив трассировку/протоколирование, я получил это из соответствующего файла журнала:

mtm.exe, Playback - [WARNING] Internal warning: Target element "[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave'" was not found, so all intermediate elements were ignored. An incorrect element that matches target element Id can be found as the result. Verify that all intermediate elements in QueryId have valid and unique Ids
mtm.exe, Playback - [WARNING] Internal warning: Search failure: [UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave' | Performed (4) searches, UI element not found
mtm.exe, Playback - {1} [FAILED] Function ElementFetcher::FindScreenElement failed to locate UI element (;[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave') (Das angegebene Objekt wurde nicht gefunden.)

Что странно, так это то, что я даже установил Automation.AutomationID на эту кнопку, и он все еще не прошел. Кроме того, я не уверен, что это правильно, но поиск, похоже, не включает имя /automationID окна, в котором есть эта кнопка. Поскольку в этот момент в приложении открыто два окна, я мог представить, что это проблема.

спросил(а) 2015-10-30T18:18:00+03:00 4 года, 11 месяцев назад
1
Решение
58

Я проверил тест пользовательского интерфейса, который был создан MTM, загрузив его в проект Coded UI Test Project. Я открыл карту управления пользовательским интерфейсом и увидел, что не так:

Навигация TabControl/TabPage сгруппировался в том же Окне, что и ContextMenu в TrayIcon.

Причиной этого было то, что вместо использования свойства Name окна WPF, MTM/Coded UI Tests используют свойство Title как идентификатор окна (wtf?).

Решение:

Установка свойства Title в моем окне конфигурации WPF для Configuration и повторного использования затронутых этапов тестирования решила проблему.

Подсказка для людей с проблемой похожа: Он также может помочь увеличить MaxLevelsForItemContainer значения в mtm.exe.config файл, который находится в Common7\IDE вашей папки Визуальной установок Studio.

ответил(а) 2015-11-02T19:00:00+03:00 4 года, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема