Как сделать UI Automation приложений Metro-Style? - программирование
Подтвердить что ты не робот

Как сделать UI Automation приложений Metro-Style?

Я загрузил и установил предварительный просмотр пользователей Windows 8, и я хотел бы выяснить, как использовать API автоматизации пользовательского интерфейса для получения данных из приложений в стиле метро.

Справочная информация. У меня есть много автоматических тестов, которые используют API Microsoft UI Automation API для взаимодействия с приложениями. Сценарии написаны в IronRuby против .NET 4

Вначале я просто хочу проверить, видимо ли начальное меню (и если да, закройте его)

В соответствии с Microsoft нормальный API автоматизации пользовательского интерфейса должен иметь доступ и управлять приложениями в стиле метро, ​​но проблема в том, t выяснить, как мой код действительно может получить доступ к пользовательскому интерфейсу приложений для метро? Наш обычный способ просмотра данных автоматизации пользовательского интерфейса использует UISpy, однако, когда я запускаю UI-шпион под окнами 8 и создаю приложение для метро, ​​нет упоминание об этом... похоже, что приложения для метро (включая начальный экран) стеной от рабочего стола.

Если я не могу найти приложения для метро в UISpy, как я могу найти, что такое их идентификатор автоматизации, и как я могу найти их из своих автоматизированных тестовых скриптов?

4b9b3361

Ответ 1

Несколько ресурсов по автоматизации пользовательского интерфейса, которые работают в приложениях в стиле Metro:

  • Вот пример , демонстрирующий его.
  • Вот сообщение , объясняющее это.
  • Это тема форума по этому вопросу.

    В приложении ничего не говорится о том, что традиционная автоматизация пользовательского интерфейса не работает. Возможно, вам придется обновить инструменты для просмотра приложений в стиле Metro. Некоторый корабль с просмотром потребителя. Найдите файл inspect.exe.

Ответ 2

Инструменты автоматизации пользовательского интерфейса могут автоматизировать приложения Metro. Например, RIATest.

Начиная с версии 6.0, ряд функций в RIATest специально ориентированы на автоматизацию приложений в стиле Metro, в частности:

  • Возможность оставаться на вершине Metro UI, чтобы одновременно просматривать приложение Metro и RIATest IDE и сводить к минимуму переключение с экрана Desktop на Metro при автоматизации приложения Metro.

  • Запись действий, выполняемых на собственные элементы GUI Windows (включая Metro GUI). Рекордер анализирует ваш код script и повторно использует имена переменных для создания более чистых записанных скриптов, похожих на то, как вы вручную кодируете автоматизацию script.

  • Бесшовное обходное решение для ошибок, подобных этому в реализации автоматизации пользовательского интерфейса Windows в Metro UI.

Отказ от ответственности: я работаю в Cogitek, компании RIATest.

Ответ 3

Приложения WinRT (ака "Metro Style" ) запускаются в изолированной программной среде. Вы не можете пробивать стены между приложениями, в том числе и для настольных приложений. Это включает в себя изоляцию сети (например, вы не можете ссылаться на localhost, за исключением среды разработки). Для этого есть несколько исключений, таких как контакты "Share" и "Поиск", которые позволяют использовать очень специфические типы взаимодействий между приложениями.

Именно эта песочница мешает UISpy видеть исполняемое приложение WinRT в фоновом режиме. Я не уверен, как UISpy может обойти эту проблему без какого-либо исключения среды разработки для песочницы (аналогично исключению изоляции сети), которое недоступно в предварительном просмотре пользователя.

Я также не осведомлен о каких-либо анонсах относительно того, когда/если API-интерфейс UI будет поддерживаться для приложений WinRT в настоящее время.