some image

Codes and Tags

Tomar captura de pantalla con Selenium WebDriver

Etiquetas: , Blog, Testing No comments

Una de las partes más importantes en la automatización de pruebas es la parte de los reportes y la manera de presentar las evidencias, las cuales son un respaldo para saber que efectivamente nuestro sistema se encuentra estable.

El frameworkde Selenium WebDriver nos ofrece una clase para poder tomar capturas de pantalla : TakesScreenshot.

A continuación coloco un ejemplo para utilizar dicha clase utilizando la funcionalidad de org.apache.commons.io.FileUtils :)

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

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

/***
 * Realiza capturas de pantalla en la automatizacion de pruebas con Selenium
 * WebDriver y deja las imagenes en un directorio especificado. Para un mejor
 * desempeño se recomienda la utilizacion de la libreria apache.commons.io.FileUtils 
 * la cual permite trabajar mucho mejor con archivos, ejemplo copiando archivos
 * binarios como las imagenes
 * 
 * ver : http://seleniumhq.org/docs/04_webdriver_advanced.html
 * ver : http://commons.apache.org/io/download_io.cgi
 * @author codesandtags
 * 
 */
public class TakeScreenShotSelenium {

	public static void main(String[] args) {

		//Se utiliza un driver de Firefox 
		WebDriver driver = new FirefoxDriver();

		//Pagina principal
		driver.navigate().to("http://codesandtags.org");
		takeScreenShotTest(driver, "Home");
		//Pagina de Testing
		driver.findElement(By.linkText("Testing")).click();
		takeScreenShotTest(driver, "Testing");

		//Se finaliza el uso del driver
		driver.close();

	}

	/**
	 * Toma una impresion de pantalla y la guarda en un directorio donde quedan
	 * todas las evidencias de prueba
	 * 
	 * @param driver
	 * @throws IOException
	 */
	public static void takeScreenShotTest(WebDriver driver, String imageName) {
		//Directorio donde quedaran las imagenes guardadas
		File directory = new File("d:\\imagenes");

		try {
			if (directory.isDirectory()) {
				//Toma la captura de imagen 
				File imagen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
				//Mueve el archivo a la carga especificada con el respectivo nombre
				FileUtils.copyFile(imagen, new File(directory.getAbsolutePath()	+ "\\" + imageName + ".png"));
			} else {
				//Se lanza la excepcion cuando no encuentre el directorio
				throw new IOException("ERROR : La ruta especificada no es un directorio!");
			}
		} catch (IOException e) {
			//Impresion de Excepciones 
			e.printStackTrace();
		}
	}

}

Ejemplos de las imagenes tomadas

Referencias : http://seleniumhq.org/docs/04_webdriver_advanced.html

About Edwin Torres

Related Posts

  • ISTQB Logo
  • Selenium IDE, pruebas automatizadas
  • Selenium IDE, pruebas automatizadas
  • Selenium IDE, pruebas automatizadas

Add your comment