Code: Select all
package googleDriveScreenshotTest;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.io.FileHandler;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.io.File;
import java.io.IOException;
import java.time.Duration;
import java.util.Scanner;
public class PdfScreenShotTest2{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Get user inputs with validation
String pdfUrl = getUserInput(scanner, "Enter Google Drive PDF link: ");
String folderName = getUserInput(scanner, "Enter folder name to save images: ");
int totalPages = getValidPageCount(scanner);
// Setup WebDriver
WebDriver driver = new ChromeDriver();
try {
// Create directory with error handling
File screenshotDir = createScreenshotDirectory(folderName);
// Navigate to PDF
driver.get(pdfUrl);
driver.manage().window().maximize();
// Wait for document to load
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15));
WebElement body = wait.until(ExpectedConditions.elementToBeClickable(By.tagName("body")));
// Click anywhere on page
body.click();
// Take screenshots of each page
for (int pageNumber = 1; pageNumber 0) {
return count;
}
System.out.println("Please enter a positive number.");
} catch (Exception e) {
System.err.println("Invalid input. Please enter a valid number.");
scanner.nextLine(); // Clear invalid input
}
}
}
private static File createScreenshotDirectory(String folderName) throws IOException {
String downloadPath = System.getProperty("user.home") + "/Downloads/" + folderName;
File folder = new File(downloadPath);
if (!folder.exists()) {
if (!folder.mkdirs()) {
throw new IOException("Failed to create directory: " + downloadPath);
}
}
return folder;
}
}