Если вы тестируете DataWindows (класс pbdwxxx, например, pbdw110), вам придется использовать комбинацию щелчка по определенным координатам и отправки клавиш Tab, чтобы получить нужный элемент управления. Конечно, вы также можете отправлять стрелки вверх и вниз для перемещения между рядами. Проще всего начать с обычного элемента управления, такого как SLE, и перейти в DataWindow. Проблема в том, что DataWindow - это просто изображение. Нет никакого контроля для данного поля, пока вы не переместите фокус там, нажав или вкладку. Я также обнаружил, что интерфейс iAccessible в DataWindow немного странный. Если вы спросите в DataWindow объект с фокусом, вы не получите правильный ответ. Если вы перечислите всех детей, вы сможете найти того, на кого фокусируется. Если вы можете изменить источник, я также советую вам установить AccessibleName для ваших элементов управления DataWindow, иначе вы, вероятно, не сможете идентифицировать элементы управления, кроме как по положению (под элементами управления DataWindow я имею в виду те, которые находятся внутри DataWindow, а не само DataWindow) , Если это приложение MDI, вам также может быть полезно найти окно MicroHelp (класс fnhelpxxx, например, fnhelp110, найти в главном окне приложения), чтобы определить текущий контекст.
Отредактировано, чтобы добавить:
Sikuli выглядит очень многообещающе для тестирования PowerBuilder. Он работает, распознавая объекты на экране по сохраненному фрагменту скриншота. То есть вы делаете скриншот той части экрана, которую хотите найти.