#java #selenium #pdfbox
#java #селен #pdfbox
Вопрос:
Я пытаюсь проверить определенный текст из PDF-файла, который был загружен на страницу с помощью PDFBox и Selenium, но я получаю сообщение об ошибке ниже. Я ссылался на это [[https://www.lambdatest.com/blog/selenium-testing-pdf-files/#:~:text=To handle a PDF document in Selenium test automation, we,the documents, and so on.]][1]
- Способ проверки содержимого PDF-файла
public void validate_view_of_pdf() {
logger.info("View PDF method>>");
String message = String.format("Close");
logger.info("alert" message);
Assert.assertTrue(commonPage.clickOnMessagePrompt("span",message));
formsPage.clickViewExportPDFButton();
String url = driver.getCurrentUrl();
logger.info("url >>" url);
try {
String pdfContent = formsPage.readPdfContent(url);
logger.info("pdfContent >>" pdfContent);
Assert.assertTrue(pdfContent.contains("Performance Appraisal - Manager"));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
- читать содержимое PDF
public String readPdfContent(String url) throws IOException {
URL pdfUrl = new URL(url);
InputStream in = pdfUrl.openStream();
BufferedInputStream bf = new BufferedInputStream(in);
PDDocument doc = PDDocument.load(bf);
int numberOfPages = getPageCount(doc);
logger.info("The total number of pages " numberOfPages);
String content = new PDFTextStripper().getText(doc);
doc.close();
return content;
}
public int getPageCount(PDDocument doc) {
//get the total number of pages in the pdf document
int pageCount = doc.getNumberOfPages();
return pageCount;
}
java.io.IOException: Error: End-of-File, expected line
at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1103)
at org.apache.pdfbox.pdfparser.COSParser.parseHeader(COSParser.java:2589)
at org.apache.pdfbox.pdfparser.COSParser.parsePDFHeader(COSParser.java:2560)
at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:219)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1222)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1122)
at phr.pageobjects.FormsPage.readPdfContent(FormsPage.java:516)
at phr.stepdefinitions.FormsStepDef.validate_view_of_pdf(FormsStepDef.java:464)
Комментарии:
1. Пожалуйста, отредактируйте свой вопрос и добавьте полную трассировку стека исключения.
2. пожалуйста, дайте мне знать, имеет ли URL-адрес, не имеющий расширения .pdf, какое-либо отношение к ошибке.
3. Вы пытались скопировать
BufferedInputStream bf
в файл вместо того, чтобы передавать его в PDFBox? Не могли бы вы открыть этот файл как файл PDF?4. Ошибка обычно означает, что ввод равен 0 байтам.