2012-09-10 4 views
2

Mon problème est que je veux exécuter 2 suites de tests. Lorsque le second procès de test, je commence obtenir l'erreur: Server Exception: sessionId should not be null; has this session been started yet?Comment puis-je démarrer une nouvelle instance de navigateur avec Selenium RC après tearDown?

Mon fichier Testng.xml ressemble à ceci:

<suite name="Suite" parallel="false"> 
    <suite-files> 
     <suite-file path="testng1.xml"/> 
     <suite-file path="testng2.xml"/> 
    </suite-files> 
</suite> 

Je dois mentionner que toutes les classes de fichiers testng1 et testng2 ont une annotation @BeforeSuite que appelle la méthode setUp qui ressemble à ceci:

public void setUp() { 
    String url = mySelSetter.url; 
    String browser = mySelSetter.browser; 
    if (selenium == null) { 
     selenium = new DefaultSelenium("localhost", 4445, browser, url); 
     selenium.start(); 
     selenium.open(url); 
     System.out.println("A browser instance opens."); 
    } else { 
     System.out.println("A browser instance is already open."); 
    } 
} 
+0

Ma connaissance du Selenium RC est révolue depuis longtemps, mais cela fonctionnerait-il si vous supprimiez le contrôle '(selenium == null)'? Évidemment, le chèque pourrait passer même s'il n'y a pas de navigateur ouvert. Ou, inversement - dans votre méthode 'teadDown()', après 'selenium.stop()' place 'selenium = null;' pour signaler que le navigateur a été fermé. –

+0

Chaque fois que quelqu'un pose une question de base sur Selenium RC, je recommande seulement de mettre à jour à [WebDriver] (http://code.google.com/p/selenium/wiki/GettingStarted)! –

Répondre

2

Vous devez créer une instance de sélénium une seule fois. Après cela, vous devez start() et stop() le sélénium avant et après vos étapes de test. Vérifiez ci-dessous.

public void setUp() { 
String url = mySelSetter.url; 
String browser = mySelSetter.browser; 
if (selenium == null) 
{ 
    selenium = new DefaultSelenium("localhost", 4445, browser, url); 

} else { 
    System.out.println("A browser instance is already open."); 
} 
selenium.start(); 
selenium.open(url); 
System.out.println("A browser instance opens."); 
} 

Je vous recommande fortement de passer à WebDriver. RC est maintenant une mémoire perdue.

Questions connexes