SaucedemoSeleniumTestNGJenkins / src / test / java / utilities / CapturaEvidencia.java
CapturaEvidencia.java
Raw
package utilities;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;

import org.apache.commons.io.FileUtils;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.Document;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;

public class CapturaEvidencia {
	public static void capturarPantallaEnDocumento(WebDriver driver, String rutaImagen, String nombreDocumento, String tituloEvidencia) throws IOException, InvalidFormatException, InterruptedException {
		File screen = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
		File imageFile = new File(rutaImagen);
		FileUtils.copyFile(screen, imageFile);
		
		File fichero = new File(nombreDocumento); 
		XWPFDocument docx;
		
		if (!fichero.exists()) {
			docx = new XWPFDocument();
		} else {
			FileInputStream ficheroStream = new FileInputStream(fichero);
			docx = new XWPFDocument(ficheroStream);
		}

	    XWPFParagraph paragraph = docx.createParagraph();    
	    XWPFRun run = paragraph.createRun();
	    run.setText(tituloEvidencia);
	    run.setFontSize(13);

	    InputStream pic = new FileInputStream(rutaImagen);
		run.addPicture(pic, Document.PICTURE_TYPE_PNG, rutaImagen, Units.toEMU(500), Units.toEMU(200));
	    pic.close();
	    
	    FileOutputStream out = new FileOutputStream(nombreDocumento);
	    docx.write(out);
	    out.flush();
	    out.close();
	    docx.close();

	    TimeUnit.SECONDS.sleep(1);
	}
	
	public static void escribirTituloEnDocumento(String nombreDocumento, String tituloEvidencia, int fontSize) throws IOException, InvalidFormatException, InterruptedException {
		File fichero = new File(nombreDocumento); 
		XWPFDocument docx;
		
		if (!fichero.exists()) {
			docx = new XWPFDocument();
		} else {
			FileInputStream ficheroStream = new FileInputStream(fichero);
			docx = new XWPFDocument(ficheroStream);
		}
		
	    XWPFParagraph paragraph = docx.createParagraph();    
	    XWPFRun run = paragraph.createRun();
	    run.setText(tituloEvidencia);
	    run.setFontSize(fontSize);

	    FileOutputStream out = new FileOutputStream(nombreDocumento);
	    docx.write(out);
	    out.flush();
	    out.close();
	    docx.close();

	    TimeUnit.SECONDS.sleep(1);
	}
}