Для того, чтобы выполнить тесты кодированного интерфейса в Silverlight 5, вам необходимо обновить помощник по кодированию кодированного интерфейса: Visual Studio Gallery: UI Test Plugin for Silverlight Старый, который поставляется с VS2010, работает только на SL4 и ниже.
SL5 был реализован бит немного по-другому, и он нарушил тесты кодированного интерфейса, поэтому предложил разработчикам перейти на VS2012 и новый плагин автоматизации пользовательского интерфейса (как вы обнаружили).
После установки исполняемого файла UITestPluginForSilverlight.msi вам необходимо ссылаться на эти сборки в части Silverlight вашего проекта (которые у вас уже есть).
Насколько я помню, и причина, по которой ваши кодированные пользовательские интерфейсы нарушаются в VS2010, но работает в VS2012, заключается в том, что файлы SL5 и SL4 UIMap.designer.cs, которые генерируются тестовыми регистраторами, не очень совместимы с каждым Другие.
Записи SL4 Сгенерированный с помощью помощника по автоматизации SL4 не будет работать с версией AutorationHelper SL5. Однако SL5 Autiomation Helper будет работать с записями SL4, если эти записи создаются VS2012.
Итак, чтобы уточнить: когда вы используете рекордер, он создает файл UIMap. Файл карты имеет три части к нему:
- XML каталог всех записанных методов
- конструктор сгенерированного кода За частичного класса.
- Пользовательский частичный класс.
Если вы проверяете созданный конструктором код за файлом, вы можете понять, что рекордер генерирует много кода для поиска элементов управления и взаимодействия с ними.
Для каждого элемента управления рекордер обнаруживает, что он представляет экземпляр соответствующего объекта тестирования/взаимодействия.
При объявлении этих объектов рекордер определяет группу доступных для поиска/поисковых свойств. В следующий раз, когда воспроизведение выполняется, оно берет эти свойства и использует их для поиска фактического элемента управления.
Кроме того, все элементы управления имеют родительский элемент, поэтому регистратор обязательно указывает родительский элемент пользовательского интерфейса для каждого обнаруженного элемента управления.Для SL4 и SL5 родители являются следующие:
- Browser Window
- HTML Page
- Div (проведение SilverLight выполнения)
- SL Object (SL выполнения плагин)
- Main SL UI Element (обычно Squigly Buzy индикатор)
- Navigation Рамки
- Внутренние страницы
- Управление
Конструкторы:
- Родительский контроль/Взаимодействие объекта
Поиск недвижимости:
- Название страницы: Общая строка, которая оказывает заголовок окна браузера.
- Instance Номер: (начинается с 1 по спискам ... что странно)
- Id управления: (определяется по имени или х: Имя атрибутов XAML)
- Display Name: Это ненадежный для комбинированного окна/элементы списка, как это работает , комбинируя все, что оказывается в поле со списком/списка элементов элемента в сочетании с экземпляра количества этого элемента, например:
выпадающий с двумя элементами, каждый из которых назван «Список элементов» могут быть обнаружены следующими отображаемыми именами:
«Элемент списка: 1» и «Элемент списка: 2»
- Любая комбинация и перестановка атрибутов поиска (вы можете посмотреть их).
Короче говоря, фактические объекты взаимодействия, созданные рекордерами, различаются в SL4 и SL5. Это означает, что вы не можете взять один UIMap.designer.cs и заменить его другим. Структура тестирования (и связанные с ней объекты взаимодействия, используемые в UIMap.designer.cs) не совместимы с бинарными. Вот почему ваше воспроизведение не может работать.
Вы используете недавний Internet Explorer, как предлагается на странице расширения, с которой вы связались? – jv42
@ jv42 Да, я пробовал это с IE8 и 9 – tnw
Несколько раз кодированные тесты пользовательского интерфейса - это странно, попробуйте вручную щелкнуть по элементу управления серебристым светом, когда он ищет элементы управления, чтобы увидеть, найдет ли он это. –