Print web page to PDF in Selenium

Dahun Yoo·2022년 2월 19일
0
post-thumbnail

Selenium 4.0 이상부터는 웹페이지를 pdf로 출력할 수도 있게 되었습니다.


Printing to PDF

현재 웹페이지를 pdf로 출력하는 기능은, ChromeDriver 에서만 제공하고 있습니다. (WebDriver로 선언되어 있는 객체는 사용불가)
또한, 브라우저 모드를 headless 로 설정해야 기능이 동작합니다.

Setting headless mode

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setHeadless(true);

ChromeDriver chromeDriver = new ChromeDriver(chromeOptions);

ChromeOptions 를 이용하여 headless 모드를 설정해줍니다.


Printing to PDF

driver.get("https://selenium.dev/");


Pdf pdf = driver.print(new PrintOptions());
Files.write(Paths.get("./selenium.pdf"), OutputType.BYTES.convertFromBase64Png(pdf.getContent()));

print() 메소드는 Pdf 타입으로 리턴합니다.

이후 Files 를 이용해 pdf파일이 저장될 위치를 지정해줍니다.
파일의 타입도 지정해주어야하는데요, OutputType.BYTES.convertFromBase64Png(pdf.getContent())); 를 이용해서 지정해줄 수 있습니다.

이후 실제 생성된 pdf파일을 확인해보면, 스크롤이 필요한 페이지들도 전부 하나의 pdf파일로, 페이지 제일 상단부터 제일 하단까지 프린트되어있는 것을 확ㅇ니할 수 있습니다.

profile
QA Engineer

0개의 댓글