mercredi 16 mars 2011

Seleinium : petit exemple avec du XPATH

Voici un exemple de script qui s'utilise sur Mantis :


package com.example.tests;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;

public class MantisSearch {

/**
* @param args
*/
public static void main(String[] args) {
String chaineARechercher = "";
if (args.length == 1 && !"".equals(args[0])) {
chaineARechercher = args[0];
} else {
System.err.println("Usage : \n");
System.err.println(MantisSearch.class.getSimpleName()
+ " chaineAChercher \n");
System.err.println("Example : \n");
System.err
.println(MantisSearch.class.getSimpleName()
+ " \"at net.mm.ccm.server.DefaultServer.systemFailure (line 1019)\" \n");
System.exit(-1);
}

Selenium selenium = new DefaultSelenium("localhost", 4444, "*chrome",
"http://tracker.com/");
selenium.start();
selenium.open("/login_page.php");
selenium.type("username", "guest");
selenium.type("password", "guest");
selenium.click("//input[@value='Ouvrir la session']");
selenium.waitForPageToLoad("30000");
selenium.click("link=Afficher les bogues");
selenium.waitForPageToLoad("30000");
selenium.type("search", chaineARechercher);
selenium.click("filter");
selenium.waitForPageToLoad("30000");

// si au moins une reponse
StringBuilder builder = new StringBuilder();
int index = 4;
while (selenium.isElementPresent("//table[@id='buglist']/tbody/tr["
+ index + "]")) {
if (selenium.isElementPresent("//table[@id='buglist']/tbody/tr["
+ index + "]/td[4]")) {
String link = selenium
.getText("//table[@id='buglist']/tbody/tr[" + index
+ "]/td[4]");
// System.err.println("click sur le lien " + link);

if (selenium.isElementPresent("link=" + link)) {
selenium.click("link=" + link);
selenium.waitForPageToLoad("5000");
index++;
String resultat = selenium.getBodyText();
if (resultat.indexOf(chaineARechercher) != -1) {
builder.append("######################################################"+"\n");
builder.append("Mantis possible : " + link +"\n");
builder.append(resultat+"\n");
builder.append("######################################################"+"\n");
}
selenium.click("link=Afficher les bogues");
selenium.waitForPageToLoad("5000");
} else {
System.err.println("element non trouve link=" + link);
}
}
else
{
// il n'y plus de resultat
// on sort
break;
}
}

try {
FileWriter file = new FileWriter("mantisTrouvees.txt");
file.write(builder.toString());
file.flush();
file.close();
} catch (IOException e) {
e.printStackTrace();
}

System.out.println(builder.toString());

selenium.click("link=Fermer la session");
selenium.waitForPageToLoad("30000");
selenium.stop();

}

}

Aucun commentaire:

Enregistrer un commentaire