Manipulação de caixas SWT diálogo durante a execução de testes no modo sem cabeça usando SWTBOT
-
19-09-2019 - |
Pergunta
Estou executando um caso de teste JUnit no meu aplicativo eclipse que foi construído usando SWT. Estou fazendo testes de GUI usando SWTBot. Então, aqui está o meu problema:
editor.bot().button("Make Excel Template").click();
Este código me ajuda a gerar um modelo em meu aplicativo. Uma vez feito isso, ele lança-se um diálogo modal com "OK" como uma mensagem. No entanto, eu não consigo SWTBot para encontrar este widget Caixa de botão / / diálogo. Recebo um 'WidgetNotFoundException'.
Alguém se deparar com isso? conteúdo oficial no site do SWTBot diz que caixas de diálogo deve ser executado em tópicos não-UI separados. Os exemplos fornecidos no entanto, não são muito informativo.
Agradecemos a sua ajuda!
Solução 2
@carstenlez - sua solução funciona bem para caixas JFace diálogo. Meu aplicativo, no entanto, está fazendo uso de um MessageBox - que é um diálogo nativa. SWTBot não suporta diálogos nativos, por isso estou praticamente sem opções.
Outras dicas
Primeiro, você deve executar os testes em um não-UI-Thread (se já não fazê-lo). Em segundo lugar, você pode usar uma condição que esperar para o seu diálogo modal a aparecer depois de executar a ação que trará o diálogo se:
bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog "));
bot.button("OK").click();
Este resolvido nossos problemas de tempo.