使用SWTBOT在无头模式下运行测试时处理SWT对话框

时间:2009-12-15 13:57:13

标签: user-interface swt gui-testing swtbot

我正在使用SWT构建的eclipse应用程序上运行Junit测试用例。我正在使用SWTBot进行GUI测试。所以,这是我的问题:

editor.bot().button("Make Excel Template").click();

此代码可帮助我在应用程序中生成模板。完成后,它会以“确定”作为消息抛出模态对话框。但是,我无法让SWTBot找到这个按钮/小部件/对话框。我一直收到'WidgetNotFoundException'。

有人碰到过这个吗? SWTBot网站上的官方内容说,对话框应该在单独的非UI线程中运行。但是,提供的示例信息量不大。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

首先,您应该在非UI线程中运行测试(如果尚未执行此操作)。 其次,在执行将启动对话框的操作后,您可以使用条件等待模态对话框出现:

bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog "));
bot.button("OK").click();

这解决了我们的时间问题。

答案 1 :(得分:0)

@carstenlez - 您的解决方案适用于JFace对话框。但是,我的应用程序正在使用MessageBox - 这是一个本机对话框。 SWTBot不支持原生对话框,所以我几乎没有选择。