Помогите заставить QTP идентифицировать элемент управления

Мы пытаемся использовать QTP (QuickTest Professional) для автоматического тестирования устаревшего приложения C++.

Однако главное окно приложения состоит из нескольких ОДИНАКОВЫХ панелей. Каждая панель имеет уникальный заголовок.

Если я просматриваю окно в Spy++ (поставляется с DevStudio), я вижу:

+ Window <hwnd> "Window Title" taskwindowclass
  + Window <hwnd> "Panel A" childwindowclass
    + Window <hwnd> "OK" Button
  + Window <hwnd> "Panel B" childwindowclass
    + Window <hwnd> "OK" Button

Однако в Object Spy QTP иерархия выглядит так:

+ Window: Window Title
  + WinButton: OK

Там даже не видно, что есть промежуточная панель.

Кто-нибудь знает способ получить «путь» окна, чтобы идентифицировать каждый элемент управления? т. е. поэтому элементы управления идентифицируются как:

Button A: "Window Title/Panel A/OK"
Button B: "Window Title/Panel B/OK"

person Jeff B    schedule 06.11.2008    source источник


Ответы (1)


Вы можете использовать описательное программирование, чтобы обойти карту объектов. QTP по умолчанию игнорирует объекты панели. Вы можете попытаться получить ссылку на объект панели динамически, а затем выполнить поиск в коллекции ChildObjects, чтобы найти кнопку ok. Другим вариантом может быть просто добавление порядкового идентификатора к кнопкам ok.

  • Кнопка A: «Заголовок окна/индекс OK №1»
  • Кнопка B: «Заголовок окна/индекс OK №2»
person Tom E    schedule 07.11.2008