Как читать/взаимодействовать со старым ActiveX SSUltraGrid с помощью UIAutomation
-
10-07-2019 - |
Вопрос
Я исследую автоматическое тестирование старого приложения Win32, в котором использовались элементы управления ActiveX.Я использую White (от Toughthworks), который использует Microsoft UIAutomation.Я могу найти элемент AutomationElement, связанный с элементом управления, но как мне с ним взаимодействовать?
Spy++ рассматривает элемент управления сеткой как одно окно, поэтому я не могу напрямую обращаться к строкам, столбцам или ячейкам.Как мне связаться с элементом управления SSUltraGrid из моего тестового кода?
Ура, Найджел
Решение
Основная проблема с некоторыми ActiveX и другими пользовательскими элементами управления, такими как SSUltraGrid, заключается в том, что вы упомянули: они представлены как одно окно.Поэтому, если они не предоставят API, который сделает их «дружественными» к вашему инструменту автоматизации с графическим интерфейсом, вы всегда будете сталкиваться с этой проблемой.Конечно, многие компании предлагают новые версии своих продуктов, которые более удобны для автоматизации пользовательского интерфейса, чем раньше...возможно стоит обновить управление...
В противном случае...инженеры-испытатели на моей работе сказали мне, что когда они сталкиваются с такой ситуацией, если есть хорошо известные нажатия клавиш, вызывающие желаемое действие, они отправляют нажатия клавиш в окно управления.Если им посчастливилось иметь вещи в фиксированном месте, они, возможно, даже смогут обойтись без отправки событий мыши.Однако в лучшем случае это рискованно.