Bonjour,
Je suis actuellement en train de tester UISpec4J afin de pouvoir automatiser des tests d'interface graphique Swing. Cependant, mon application, lance au démarrage 2 fenêtres en simultanée ce qui fait planter la commande d'interception des fenêtres, me retournant l'erreur suivante :
Citation :
Exception in thread "main" junit.framework.AssertionFailedError: Unexpected window shown - this window should be handled with Wind
owInterceptor.
Window contents:
<window title="1">
<button label="0"/></window>
at org.uispec4j.interception.toolkit.UISpecDisplay.assertAcceptsWindow(UISpecDisplay.java:117)
...
|
Le compilateur dit que le problème provient lors de la création via new Frames2() dans AdapterFrames2.java
Y'a t'il moyen d'intercepter 2 fenêtres, ou plus, en simultanée. Les fenêtres sont des JFrames et donc à priori doivent être interceptées avec WindowInterceptor, mais je ne trouve pas de solution à la récupération de plsuieurs éléments. Merci de ne pas me proposer d'utiliser un autre outil (Jemmy et cie) car mon objectif est justement de comparer les différents outils.
Merci d'avance
Nicolas
NB : je joins les parties intéressantes des différents fichiers (le code est pas beau car ce sont des reprises de fichiers déjà existants, mais il est bon).
Frames2.java (GUI) :
Code :
- ...
- public class Frames2 {
- private JButton bouton;
- public Frames2() {
- int nb_fenetres = 2;
- for (int i=0; i<nb_fenetres; i++) {
- creerFrame(i);
- }
- }
- public JFrame creerFrame(int nb) {
- String txt = String.valueOf(nb);
- JFrame frame = new JFrame();
- frame.setTitle(txt); // Titre de la fenetre
- bouton = new JButton("0" );
- ...
- }
- ...
- }
|
FICHIER IMPORTANT : AdapterFrames2.java (interception de fenêtre)
Code :
- ...
- public class AdapterFrames2 implements UISpecAdapter {
- private Window window;
-
- public Window getMainWindow() {
- if (window == null) {
- window = WindowInterceptor.run(new Trigger() {
- public void run() {new Frames2();}
- });
- }
- return window;
- }
- ...
- }
|
UISpec4JFrames2.java (Définition des actions)
Code :
- ...
- public class UISpec4jFrames2 extends UISpecTestCase {
- AdapterFrames2 adapt;
- static {
- UISpec4J.init();
- }
- /*
- * Definition des TextBox et Boutons à récupérer
- */
- private Button button;;
-
- /*
- * Initialisation du test
- */
- protected void setUp() throws Exception {
- super.setUp();
-
- adapt = new AdapterFrames2();
- setAdapter(adapt);
-
- /*
- * Récupération des différents éléments
- */
- this.button = getMainWindow().getButton();
- UISpec4J.setWindowInterceptionTimeLimit(1000);
- }
- ...
- }
|
Message édité par vivi5421 le 28-07-2008 à 10:58:40