Как сделать UI Automation приложений Metro-Style?
Я загрузил и установил предварительный просмотр пользователей Windows 8, и я хотел бы выяснить, как использовать API автоматизации пользовательского интерфейса для получения данных из приложений в стиле метро.
Справочная информация. У меня есть много автоматических тестов, которые используют API Microsoft UI Automation API для взаимодействия с приложениями. Сценарии написаны в IronRuby против .NET 4
Вначале я просто хочу проверить, видимо ли начальное меню (и если да, закройте его)
В соответствии с Microsoft нормальный API автоматизации пользовательского интерфейса должен иметь доступ и управлять приложениями в стиле метро, но проблема в том, t выяснить, как мой код действительно может получить доступ к пользовательскому интерфейсу приложений для метро? Наш обычный способ просмотра данных автоматизации пользовательского интерфейса использует UISpy, однако, когда я запускаю UI-шпион под окнами 8 и создаю приложение для метро, нет упоминание об этом... похоже, что приложения для метро (включая начальный экран) стеной от рабочего стола.
Если я не могу найти приложения для метро в UISpy, как я могу найти, что такое их идентификатор автоматизации, и как я могу найти их из своих автоматизированных тестовых скриптов?
Ответы
Ответ 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 в настоящее время.