дать фокус приложения в Java - PullRequest
0 голосов
/ 30 июня 2011

Я хочу частично автоматизировать некоторые тесты уровня интеграции с помощью класса Robot для отправки событий мыши / клавиатуры в тестируемое приложение Java. Я хочу, чтобы пользователь мог нажимать кнопку и автоматически отправлять сразу несколько событий клавиатуры.

Я порождаю приложение, которое хочу протестировать, из своего теста Robot (используя Runtime.exec) и затем генерирую соответствующие события. К сожалению, когда пользователь нажимает кнопку, кнопка имеет фокус и получает события вместо событий, идущих к дочернему процессу, как мне хотелось бы. Я хотел бы обеспечить способ отправки событий клавиатуры робота в приложение, которое я пытаюсь протестировать.

Я думал о том, чтобы выбрать PID дочернего процесса и затем использовать команду FG, чтобы вывести нужное приложение на передний план; но это специфический для Linux подход. Я бы предпочел метод, который одинаково хорошо работает и в Linux, и в Windows.

1 Ответ

1 голос
/ 03 сентября 2011

Я не знаю точно, что вы тестируете или как вы это тестируете, но вам стоит взглянуть на Sikuli - это визуальная технология, и есть методы, которые позволят вам либо автоматически нажимать на деталь экрана, на котором вы хотите сфокусироваться, или используйте App.focus("application name"). Я действительно рекомендую это. Однако его использование не позволит вам использовать компьютер для выполнения других задач во время тестирования программы.

Надеюсь, это поможет!

...