Generating detailed reports with logs & screenshots.
Using the LoggingSelenium Interface.
1.Must have Selenium-client.jar for java
2.Junit4.jar
3.Commons-lang.jar
4.loggingselenium.jar
Include all the above jars in your classpath.
package com.est.org;
// import static com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertEquals;
// import static com.unitedinternet.portal.selenium.utils.logging.LoggingAssert.assertTrue;
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.text.ParseException;
 import jxl.Sheet;
 import jxl.Workbook;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import com.thoughtworks.selenium.HttpCommandProcessor;
 import com.unitedinternet.portal.selenium.utils.logging.HtmlResultFormatter;
 import com.unitedinternet.portal.selenium.utils.logging.LoggingCommandProcessor;
 import com.unitedinternet.portal.selenium.utils.logging.LoggingDefaultSelenium;
 import com.unitedinternet.portal.selenium.utils.logging.LoggingResultsFormatter;
 import com.unitedinternet.portal.selenium.utils.logging.LoggingSelenium;
 import com.unitedinternet.portal.selenium.utils.logging.LoggingUtils;
 import org.openqa.selenium.server.*;
 public class Loggingselenium 
 {  
  protected LoggingSelenium selenium;
  private BufferedWriter loggingWriter;
  private static final String RESULT_FILE_ENCODING = "UTF-8";
  private static final String DEFAULT_TIMEOUT = "30000";
  private static final String OPENQA_URL = "http://192.168.9.104:8080/";
  private static final String SCREENSHOT_PATH = "screenshots";
  private final String RESULTS_BASE_PATH = "C:/" + File.separator+ "loggingResults" + System.currentTimeMillis();
  private String resultsPath = new File(RESULTS_BASE_PATH).getAbsolutePath();
  private String screenshotsResultsPath = new File(RESULTS_BASE_PATH+ File.separator + SCREENSHOT_PATH).getAbsolutePath();  
  private SeleniumServer selServer;
  @Before
  public void setUp() {
   if (!new File(screenshotsResultsPath).exists()) {
    new File(screenshotsResultsPath).mkdirs();
   }
   final String resultHtmlFileName = resultsPath + File.separator+ "sampleResultSuccess.html";
   loggingWriter = LoggingUtils.createWriter(resultHtmlFileName,Loggingselenium.RESULT_FILE_ENCODING, true);
   LoggingResultsFormatter htmlFormatter = new HtmlResultFormatter(loggingWriter,Loggingselenium.RESULT_FILE_ENCODING);
   htmlFormatter.setScreenShotBaseUri(Loggingselenium.SCREENSHOT_PATH+ "/"); 
   htmlFormatter.setAutomaticScreenshotPath(screenshotsResultsPath);
   if(selServer == null)
   {
    try
    {
     SeleniumServer selServer = new SeleniumServer();
     selServer.start();
    }catch(Exception e){}
   } 
   LoggingCommandProcessor myProcessor = new LoggingCommandProcessor(new HttpCommandProcessor("localhost", 4444, "*firefox",OPENQA_URL), htmlFormatter);
   myProcessor.setExcludedCommands(new String[]{});
   selenium = new LoggingDefaultSelenium(myProcessor);
   selenium.start();
  }
  @After
  public void tearDown() {
   selenium.stop();
   try {
    if (null != loggingWriter) {
     loggingWriter.close();
    }
   } catch (IOException e) {}
  }
  @Test
  public void loggingSelenium() throws InterruptedException,ParseException 
  {   
   selenium.setContext("loggingSelenium()");
   selenium.open("/epc-client");
   selenium.windowFocus();
   selenium.windowMaximize();
   selenium.captureScreenshot(screenshotsResultsPath + File.separator+ "openQaHomePage_" + LoggingUtils.timeStampForFileName()+ ".png");
   try {       
    selenium.click("link=Search UPRN by Address Web Service");
    selenium.waitForPageToLoad(DEFAULT_TIMEOUT);
    selenium.click("//input[@type='radio'][6]");
    FileInputStream fi = new FileInputStream("C:\\Selenium\\datainput\\webservices.xls");
    Workbook wBk = Workbook.getWorkbook(fi);
    Sheet sht = wBk.getSheet("webService");
      selenium.type("request",sht.getCell(3,0).getContents());
      selenium.waitForPageToLoad(DEFAULT_TIMEOUT);
      selenium.wait(30000);
    selenium.click("//input[@name='Submit' and @value='submit']");
    selenium.waitForPageToLoad(DEFAULT_TIMEOUT);
    String textArea = selenium.getValue("//textarea[@name='header']");
     if(textArea.contains("null"))
     { 
      System.out.println("\n Invalid request XML  submitted!!!!");      
     }
   } catch (Exception e) {}
  }
}
