스크린 샷은 버그 분석에 바람직합니다. Selenium은 실행 중에 자동으로 스크린 샷을 찍을 수 있습니다. TakesScreenshot에 캐스트 WebDriver 인스턴스를 입력해야합니다.
Selenium에서 스크린 샷을 찍는 것은 3 단계 프로세스입니다.
1 단계) 웹 드라이버 개체를 TakeScreenshot으로 변환
TakesScreenshot scrShot = ((TakesScreenshot) webdriver);
2) getScreenshotAs 메소드를 호출하여 이미지 파일 생성
파일 SrcFile = scrShot.getScreenshotAs (OutputType.FILE);
3 단계) 원하는 위치에 파일 복사
예 :이 예에서는 http://demo.guru99.com/V4/의 스크린 샷을 C : /Test.png로 저장합니다.
package Guru99TakeScreenshot;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
public class Guru99TakeScreenshot {
@Test
public void testGuru99TakeScreenShot() throws Exception{
WebDriver driver ;
System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");
driver = new FirefoxDriver();
//goto url
driver.get("http://demo.guru99.com/V4/");
// 스크린 샷 기능 호출
this.takeSnapShot(driver, "c://test.png") ;
}
/**
* 이 기능은 스크린 샷을 캡처합니다.
* @param webdriver
* @param fileWithPath
* @throws Exception
*/
public static void takeSnapShot(WebDriver webdriver,String fileWithPath) throws Exception{
// 웹 드라이버 객체를 TakeScreenshot으로 변환합니다.
TakesScreenshot scrShot =((TakesScreenshot)webdriver);
// getScreenshotAs 메서드를 호출하여 이미지 파일을 만듭니다.
File SrcFile=scrShot.getScreenshotAs(OutputType.FILE);
// 이미지 파일을 새 목적지로 이동합니다.
File DestFile=new File(fileWithPath);
//대상에 파일 복사
FileUtils.copyFile(SrcFile, DestFile);
}
}
참고 : Selenium 버전 3.9.0 이상에서는 Apache Commons IO JAR을 제공하지 않습니다. 여기에서 다운로드 하여 프로젝트에서 호출 할 수 있습니다.
'자동화테스트 > Selenium' 카테고리의 다른 글
Log4j with Selenium Tutorial (0) | 2018.12.15 |
---|---|
Selenium에서의 병렬 실행 및 세션 처리 (0) | 2018.12.14 |
TestNG 보고서 : Selenium WebDriver의 보고서 사용자 지정, PDF 및 전자 메일 (0) | 2018.12.12 |
Selenium WebDriver를 사용한 크로스 브라우저 테스트 (0) | 2018.12.11 |
Selenium Webdriver에서 iFrame 처리하기 (0) | 2018.12.10 |