GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Printar tela de execução do teste automatizado

java
selenium
printf
Tags: #<Tag:0x00007fb03bb77508> #<Tag:0x00007fb03bb72af8> #<Tag:0x00007fb03bb61d20>

#1

Boa tarde pessoal.

Sou iniciante e gostaria de saber se consigo printar a tela do navegador que esta executando um teste automatizado.
Atualmente consigo printar a tela, mas se eu minimizar o navegador enquanto o teste é executado, o print que sai é do que tiver aberto na maquina na hora do print.

O código que tenho hoje é esse:

public void print(WebDriver driver, String numeroPedido){
try {
Robot robot = new Robot();
BufferedImage bi = robot.createScreenCapture(new
Rectangle(0, 0, 1920, 1080));
ImageIO.write(bi, “jpg”, new File(“C:\Users\helen\Documents\Evidencias\” + numeroPedido + “-” + dataAtualizacao.getDataHora() + “.jpg”));
System.out.println(“Evidência registrada”);
} catch (Exception e) {
System.out.println(“Erro ao tirar print”);
}
}


#2

Roda os testes do Selenium em uma máquina virtual, assim um não atrapalha o outro. Inclusive pode ter n máquinas rodando vários testes em paralelo através do selenium grid.


#3

Use o TakeScreenShot.
O exemplo, que adaptei de outra dica funciona pra mim.
Só utilizo o Robot quando preciso printar telas com pop-up.

Use:
takeSnapShot( numeroPedido + “-” + dataAtualizadao.getDataHora() + “jpg” );

Exemplo do método:

public static void takeSnapShot(String nomeDoArquivoImagem) throws Exception {

	// Convert web driver object to TakeScreenshot
	TakesScreenshot scrShot = ((TakesScreenshot) driver);

	// Call getScreenshotAs method to create image file
	File srcFile = scrShot.getScreenshotAs(OutputType.FILE);

	// imageFileDir = System.getProperty("java.io.tmpdir"); 
	imageFileDir = "C://Users//helen//Documents//Evidencias//";
	FileUtils.copyFile(srcFile, new File(imageFileDir, nomeDoArquivoImagem));

}