使用UISpec4J获取所有窗口

我正在尝试使用UISpec4J来自动化Java Swing应用程序。 适配器设置后:

setAdapter(new MainClassAdapter(Main.class, new String[0])); 

我想获取主窗口:

 Window mainWindow = getMainWindow(); 

而不是登录对话框,我得到一个带有应用程序徽标的闪屏。 我手动调用此对话框的所有尝试都失败了。

如何获取已打开的对话框/窗口列表?

看起来MainClassAdapter不是为处理一系列窗口而设计的。 但是,您可以实现自己的适配器,忽略启动屏幕并返回后续窗口。 以下是从UISpec4J 论坛中获取的示例:

 setAdapter(new UISpecAdapter() { public Window getMainWindow() { final Window[] result = new Window[1]; WindowInterceptor.init(new MainClassTrigger(Main.class, new String[0])) .processTransientWindow() .process(new WindowHandler() { public Trigger process(Window window) throws Exception { result[0] = window; return Trigger.DO_NOTHING; } }) .run(); return result[0]; } });