2016-11-22 2 views
0

Я работаю на веб-странице, на которой есть ссылка, нажатие которой открывает PDF-файл в новом окне. Мне нужно прочитать этот файл pdf, чтобы проверить некоторые данные по выполненным транзакциям. Один из способов - загрузить этот файл, а затем использовать его. Может ли кто-нибудь помочь мне в этом. Я должен работать на IE 11Как читать pdf-файл с помощью selenium

Спасибо, что и раньше.

+0

чтение содержимого из PDF с помощью селена не будет работать. Загрузите файл pdf и прочитайте файл с помощью PDFbox или любой другой библиотеки. – metar

ответ

1

Использование PDFBox и FontBox.

public String readPDFInURL() throws EmptyFileException, IOException { 
     WebDriver driver = new FirefoxDriver(); 
     // page with example pdf document 
     driver.get("file:///C:/Users/admin/Downloads/dotnet_TheRaceforEmpires.pdf"); 
     URL url = new URL(driver.getCurrentUrl()); 
     InputStream is = url.openStream(); 
     BufferedInputStream fileToParse = new BufferedInputStream(is); 
     PDDocument document = null; 
     try { 
      document = PDDocument.load(fileToParse); 
      String output = new PDFTextStripper().getText(document); 
     } finally { 
      if (document != null) { 
       document.close(); 
      } 
      fileToParse.close(); 
      is.close(); 
     } 
     return output; 
    } 

Поскольку некоторые из функций из старых версий PDFBox устарели, мы должны использовать другой FontBox вместе с PDFBox. Я использовал PDFBox (2.0.3) и FontBox (2.0.3), и он отлично работает. Однако он не будет читать изображения.

+0

Не уверен, что это работает с текущей версией; лучше сделайте 'PDDocument doc = PDDocument.load (url.openStream());' и затем удалите все ненужные коды (COSDocument, PDFParser) –

+0

Попробуйте выполнить следующие функции: –

+0

Я обновил свой ответ. –

0

First Downlaod pdfbox jar.

strURL является веб-адрес, который содержит файл в формате .pdf: как (https://example.com/downloads/presence/Online-Presence-CA-05-02-2017-04-13.pdf)

public boolean verifyPDFContent(String strURL, String text) { 

     String output =""; 
     boolean flag = false; 
     try{ 
      URL url = new URL(strURL); 
      BufferedInputStream file = new BufferedInputStream(url.openStream()); 
      PDDocument document = null; 
      try { 
       document = PDDocument.load(file); 
       output = new PDFTextStripper().getText(document); 
       System.out.println(output); 
      } finally { 
       if (document != null) { 
        document.close(); 
       } 
      } 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     if(output.contains(text)){ 
      flag = true; 
     } 
     return flag; 
    } 
Смежные вопросы