Selenium 4.0 이상부터는 웹페이지를 pdf로 출력할 수도 있게 되었습니다.
현재 웹페이지를 pdf로 출력하는 기능은, ChromeDriver
에서만 제공하고 있습니다. (WebDriver로 선언되어 있는 객체는 사용불가)
또한, 브라우저 모드를 headless
로 설정해야 기능이 동작합니다.
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setHeadless(true);
ChromeDriver chromeDriver = new ChromeDriver(chromeOptions);
ChromeOptions
를 이용하여 headless
모드를 설정해줍니다.
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파일로, 페이지 제일 상단부터 제일 하단까지 프린트되어있는 것을 확ㅇ니할 수 있습니다.