Как автоматизировать простое приложение Windows Form с помощью MSAA?
Я хочу автоматизировать простое приложение Windows, используя MSAA. Я не понимаю, что, как найти контроль (скажем, TextBox
а также Button
) и получить их значение (скажем, получить значение TextBox
и нажмите в случае кнопки).
2 ответа
Почему вы хотите автоматизировать использование MSAA? Текущий путь Microsoft - UI Automation.
Из Википедии (выделено мое):
UIA похожа на Microsoft Active Accessibility (MSAA) в том, что она предоставляет средства для предоставления и сбора информации об элементах пользовательского интерфейса и элементах управления для поддержки доступности пользовательского интерфейса и автоматизации тестирования программного обеспечения. Тем не менее, UIA является более новой технологией, которая обеспечивает гораздо более богатую объектную модель, чем MSAA...
С помощью UI Automation вы можете автоматизировать создание собственного или.NET-приложения или использовать сторонний инструмент, такой как RIATest, который опирается на UI Automation.
(Отказ от ответственности: я связан с RIATest).
Далее предполагается, что вы будете разрабатывать свою программу автоматизации на C/C++, так как я не уверен, что было бы легко использовать MSAA из.NET (хотя это могло бы быть возможно!)
Если вы не хотите использовать C++, вы можете исследовать с помощью MS UI Automation из.NET.
Чтобы начать разработку клиентского приложения для автоматизации с использованием MSAA и C++, я предлагаю:
Установите Windows SDK для Windows 7 и.NET Framework 4
Это установит инструмент Inspect.exe - найдите его в:
Programs > Microsoft Windows SDK v7.1 > Tools > Inspect Objects
Запустите Inspect.exe и переключите верхнее левое раскрывающееся меню с "UI Automation" на "MSAA"
Запустите тестируемое приложение и наведите курсор мыши на его элементы пользовательского интерфейса - свойства MSAA элементов должны отображаться в Inspect.exe.
Напишите свой код автоматизации:)
Важным выбором будет решить, использовать ли управляемые событиями методы для определения местоположения ваших элементов, или просто начать с верхнего уровня (рабочего стола), найти свое приложение среди дочерних элементов рабочего стола и углубиться в дерево элементов вашего приложения. оттуда.
На codeproject.com есть хороший учебник по MSAA, управляемый событиями, по адресу: http://www.codeproject.com/Articles/18290/Introduction-to-Microsoft-Active-Accessibility
Учебники по древовидной навигации в MSAA кажутся немного более скудными. Я бы начал с документов MS - я рекомендую первый:
Клиентские интерфейсы Active Accessibility и функции