2012-03-02 5 views
0

J'essaie d'utiliser UISpec4J afin d'automatiser une application Java Swing. Une fois la configuration de l'adaptateur:Obtenir toutes les fenêtres en utilisant UISpec4J

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

Je suis en train d'obtenir la fenêtre principale:

Window mainWindow = getMainWindow(); 

Au lieu d'une boîte de dialogue de connexion, je reçois un écran de démarrage avec le logo de l'application. Toutes mes tentatives pour appeler cette boîte de dialogue manuellement ont échoué.

Comment puis-je obtenir la liste des boîtes de dialogue/fenêtres ouvertes?

Répondre

1

Il semble que MainClassAdapter n'est pas conçu pour gérer une séquence de fenêtres. Cependant, vous pouvez implémenter votre propre adaptateur qui ignore l'écran de démarrage et renvoie la fenêtre suivante. Voici un exemple tiré de UISpec4J forums:

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]; 
    } 
}); 
Questions connexes