2010-10-11 6 views
0

J'utilise selenium-rc avec C# pour tester mon application asp.net mvc2. Actuellement, tout ce que je fais est d'ouvrir la page d'accueil avec le sélénium RC. Quand j'exécute mon test, je vois la télécommande au sélénium ouverte dans un navigateur et je vois que mon application s'ouvre correctement dans un navigateur mais le sélénium affiche une erreur 404 et annule le test.Simple Selenium Test donne XHR ERROR: 404

Pour tenter d'obtenir ce travail que j'ai coupé le test à un simple application de la console et ont changé le port de sélénium par défaut est ici mon code:

static void Main(string[] args) 
    { 
     try 
     { 
      var _selenium = new DefaultSelenium("localhost", 1234, "*chrome", "http://localhost:6666"); 
      _selenium.Start(); 
      _selenium.Open("/"); 

      try 
      { 
       _selenium.Stop(); 
      } 
      catch (Exception) 
      { 
       // Ignore errors if unable to close the browser 
      } 

     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e); 
     } 
     Console.WriteLine("Done."); 
     Console.ReadKey(); 

    } 

cela échoue avec l'erreur « ERREUR XHR : URL =/localhost: 6666/RESPONSE_CODE = 404 Error_Message = Introuvable sur la session 5f2e59798ae74e7cb741d50cae7e817a »

et si vous regardez dans la console de sélénium en cours d'exécution, vous voyez

15:53:16.238 INFO - Allocated session 5f2e59798ae74e7cb741d50cae7e817a for http://localhost:6666, launching... 
15:53:16.265 INFO - Preparing Firefox profile... 
15:53:18.325 INFO - Launching Firefox... 
15:53:20.977 INFO - Got result: OK,5f2e59798ae74e7cb741d50cae7e817a on session 5f2e59798ae74e7cb741d50cae7e817a 
15:53:20.980 INFO - Command request: open[/, ] on session 5f2e59798ae74e7cb741d50cae7e817a 
15:53:22.654 INFO - Got result: XHR ERROR: URL = http://localhost:6666/ Response_Code = 404 Error_Message = Not Found on session 5f2e59798ae74e7cb741d50cae7e817a 

choses intéressantes que j'ai essayé sont:

changer le site de « google » - alors mon test fonctionne
changer le site au port « google » 80 il ne marche pas alors le travail.
déplacé mon site de Cassini à 7 iis - na pas
travail fait mon site le site par défaut sur IIS 7 par exemple http://localhost/ - travail na pas
Je l'ai utilisé Fiddler pour regarder la session - toutes les demandes tirées avec succès le retour.
J'ai essayé de transmettre -avoidProxy et -ensureCleanSession lors du démarrage du serveur RC. N'a pas fait de différence notable.

Si je reconfigure le sélénium pour utiliser le port par défaut, l'exception suivante est répétée encore et encore (une fois toutes les 10 secondes/chaque ID de session différent à chaque fois). Cela ne se produit pas une fois que j'ai changé le port par défaut, mais je l'ai inclus juste au cas où.

16:26:38.019 WARN - POST /selenium-server/driver/?seleniumStart=true&localFrameAddress=top&seleniumWindowName=&uniqueId=sel_48694&sessionId=a87b8d6a9e444a5485a5044ef6370e2d&counterToMakeURsUniqueAndSoStopPageCachingInTheBrowser=1286810798016&sequenceNumber=4115 HTTP/1.1 
java.lang.RuntimeException: sessionId a87b8d6a9e444a5485a5044ef6370e2d doesn't exist; perhaps this session was already stopped? 
    at org.openqa.selenium.server.FrameGroupCommandQueueSet.getQueueSet(FrameGroupCommandQueueSet.java:220) 
    at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleBrowserResponse(SeleniumDriverResourceHandler.java:165) 
    at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:131) 
    at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1530) 
    at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1482) 
    at org.openqa.jetty.http.HttpServer.service(HttpServer.java:909) 
    at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820) 
    at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986) 
    at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837) 
    at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:245) 
    at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:357) 
    at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534) 

Quelqu'un peut-il faire la lumière?

+0

Lorsque vous l'utilisez avec le port normal vous obtenez ces erreurs lors de l'exécution des tests ou apparaissent-ils sans aucun test en cours d'exécution? – AutomatedTester

+0

Sans aucun test en cours d'exécution – Twisted

Répondre

1

J'utilise C# et avait le même problème avec la méthode selenium.open. J'ai référé le fil haroonzone posté dans sa réponse ci-dessus.et ont fait suite à des changements dans mon code

Declare selenium comme

private DefaultSelenium selenium; 

au lieu de

private ISelenium selenium; 

et appeler la méthode ouverte comme

selenium.Processor.DoCommand("open", new String[] { YOUR_URL, "true" }); 

au lieu de

selenium.Open("YOUR_URL"); 

De plus, vous pouvez appeler

selenium.SetTimeout("600000"); 

avant DoCommand

1

Quelle version de Selenium Server utilisez-vous? Nous avons ce problème avec Selenium Server 2.0a2. Il est corrigé dans les versions ultérieures de Selenium, donc si vous téléchargez la dernière version du serveur Selenium et que vous exécutez ce test, vous ne recevrez pas l'exception XHR. Mais si vous ne pouvez pas mettre à jour la version sélénium alors vous pouvez faire ce qui suit. L'extrait de code est en Java, vous pouvez avoir un similaire en C#.

Le problème est avec la méthode selenium.open. Vous pouvez trouver plus d'informations sur l'URL suivante. http://code.google.com/p/selenium/issues/detail?id=408

selenium = new DefaultSelenium("localhost", port, browserString, url) { 
     public void open(String url) { 
      commandProcessor.doCommand("open", new String[] {url,"true"}); 
     } 
    }; 
+0

Je suis sur le serveur selenium 1.0.3 – Twisted

+0

Je vais essayer cela et revenir à vous – Twisted

+0

Cela ne compile pas - Êtes-vous sûr que ce n'est pas Java ou quelque chose? – Twisted

Questions connexes