자동화테스트/Selenium2018. 12. 13. 08:00

스크린 샷은 버그 분석에 바람직합니다. Selenium은 실행 중에 자동으로 스크린 샷을 찍을 수 있습니다. TakesScreenshot에 캐스트 WebDriver 인스턴스를 입력해야합니다.

Selenium 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을 제공하지 않습니다. 여기에서 다운로드 하여 프로젝트에서 호출 할 수 있습니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터