2010-05-25 3 views
1

Je dois créer un cas d'utilisation (en utilisant Selenium) dans lequel j'envoie des appels HTTP avec un cookie via le navigateur et capture la valeur de retour dans un fichier texte. De quoi ai-je besoin pour faire ceci, j'ai couru ceci using CURL dans la ligne de commande, mais nous rencontrons des problèmes avec le même, et donc souhaitons vérifier en utilisant un vrai navigateur d'interface utilisateur.Capture de la sortie de l'appel du navigateur en utilisant Selenium

Une autre chose à cela est que j'ai besoin d'obtenir l'URL pour être dans un fichier de test à partir de laquelle je peux lire et envoyer au navigateur. Ensuite, pour chaque appel, j'ai besoin de capturer le cookie et l'en-tête pour le même. J'ai le code/la logique suivant pour ceci, quelqu'un pourrait-il élaborer?

---> read a file.... 
File aFile = new File("../blah.txt"); 

BufferedReader input = new BufferedReader(new FileReader(aFile)); 
String line = null; //not declared within while loop 
while ((line = input.readLine()) != null){ 
    callsel(line); 
    System.out.println(line); 
} 

--> call selenium .. Open the url.. Pass cookies   
public void callsel(String url) { 

    selenium.open(url); 
    selenium.waitForPageToLoad("120000"); 

    selenium.createCookie("",""); 
    selenium.createCookie("",""); 
    selenium.open(url); 
    selenium.waitForPageToLoad("120000"); 

    ---> ur page is open now.. 
    } 
} 

Répondre

2

Je ne sais pas si vous souhaitez modifier le cookie avant de demander une page, mais avec ce code en Java vous allez capturer tous HTML revenir après la demande.

String url = "http://host/"; 

HttpCommandProcessor proc; 
proc = new HttpCommandProcessor("localhost", 4444, "*iexplore", url); 

Selenium selenium = new DefaultSelenium(proc); 

selenium.start(); 
selenium.open("pageToOpen.htm"); 

String HTMLOutput = selenium.getHtmlSource(); 
String BodyOutput = selenium.getBodyText(); 

Mise à jour. Vous avez modifié votre code un peu. En retournant les données du corps, enregistrez simplement la valeur tmpString dans un fichier texte et vous obtiendrez le corps du texte (changez ce que vous voulez en tout html) en arrière de la page.

---> read a file.... 
File aFile = new File("../blah.txt"); 

BufferedReader input = new BufferedReader(new FileReader(aFile)); 
String line = null; //not declared within while loop 
while ((line = input.readLine()) != null){ 
    String tmpString = callsel(line); 
    System.out.println("Line: " + line + " HTML:" + tmpString); 
} 

--> call selenium .. Open the url.. Pass cookies   
public string callsel(String url) { 

    selenium.open(url); 
    selenium.waitForPageToLoad("120000"); 

    selenium.createCookie("",""); 
    selenium.createCookie("",""); 
    selenium.open(url); 
    selenium.waitForPageToLoad("120000"); 

    return selenium.getBodyText(); 

    ---> ur page is open now.. 
    } 
} 
+0

salut stefan, j'ai ajouté quelques autres exigences et un peu de code, pourriez-vous s'il vous plaît vérifier et préciser la solution ci-dessus? – gagneet

3

Je recommanderais Selenium IDE ou Selenium RC pour cela. Dans l'EDI, vous pouvez exécuter des tests dans Firefox uniquement, mais c'est une bonne introduction à Selenium. Les commandes qui pourraient vous intéresser le plus sont createCookie, open et storeHtmlSource. Pour enregistrer la source HTML dans un fichier texte, vous voudrez probablement passer à Selenium RC et l'implémenter dans la langue de votre client préféré.

Liens utiles

Questions connexes