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”);
}
}
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.
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));
}