Обработка диалоговых окон SWT при выполнении тестов в автономном режиме с использованием SWTBOT
-
19-09-2019 - |
Вопрос
Я запускаю тестовый пример Junit в своем приложении eclipse, созданном с использованием SWT.Я провожу тестирование графического интерфейса с помощью SWTBot.Итак, вот моя проблема:
editor.bot().button("Make Excel Template").click();
Этот код помогает мне создать шаблон в моем приложении.После этого выводится модальное диалоговое окно с сообщением «ОК».Однако я не могу заставить SWTBot найти эту кнопку/виджет/диалоговое окно.Я продолжаю получать исключение WidgetNotFoundException.
Кто-нибудь сталкивался с этим?В официальном контенте на веб-сайте SWTBot говорится, что диалоговые окна должны запускаться в отдельных потоках, не связанных с пользовательским интерфейсом.Однако приведенные примеры не очень информативны.
Ценю вашу помощь!
Решение 2
@carstenlez - ваше решение хорошо работает для диалоговых окон JFace.Однако мое приложение использует MessageBox, который является собственным диалогом.SWTBot не поддерживает собственные диалоги, поэтому у меня практически нет вариантов.
Другие советы
Сначала вам следует запустить тесты в потоке, отличном от UI (если вы еще этого не сделали).Во-вторых, вы можете использовать условие для ожидания появления модального диалогового окна после выполнения действия, которое вызовет диалоговое окно:
bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog "));
bot.button("OK").click();
Это решило наши проблемы со временем.