Как читать/взаимодействовать со старым ActiveX SSUltraGrid с помощью UIAutomation

StackOverflow https://stackoverflow.com/questions/196636

  •  10-07-2019
  •  | 
  •  

Вопрос

Я исследую автоматическое тестирование старого приложения Win32, в котором использовались элементы управления ActiveX.Я использую White (от Toughthworks), который использует Microsoft UIAutomation.Я могу найти элемент AutomationElement, связанный с элементом управления, но как мне с ним взаимодействовать?

Spy++ рассматривает элемент управления сеткой как одно окно, поэтому я не могу напрямую обращаться к строкам, столбцам или ячейкам.Как мне связаться с элементом управления SSUltraGrid из моего тестового кода?

Ура, Найджел

Это было полезно?

Решение

Основная проблема с некоторыми ActiveX и другими пользовательскими элементами управления, такими как SSUltraGrid, заключается в том, что вы упомянули: они представлены как одно окно.Поэтому, если они не предоставят API, который сделает их «дружественными» к вашему инструменту автоматизации с графическим интерфейсом, вы всегда будете сталкиваться с этой проблемой.Конечно, многие компании предлагают новые версии своих продуктов, которые более удобны для автоматизации пользовательского интерфейса, чем раньше...возможно стоит обновить управление...

В противном случае...инженеры-испытатели на моей работе сказали мне, что когда они сталкиваются с такой ситуацией, если есть хорошо известные нажатия клавиш, вызывающие желаемое действие, они отправляют нажатия клавиш в окно управления.Если им посчастливилось иметь вещи в фиксированном месте, они, возможно, даже смогут обойтись без отправки событий мыши.Однако в лучшем случае это рискованно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top