在 selenium 中读取 PDF:构造函数 PDFParser(BufferedInputStream) 未定义

Read PDF in selenium: The constructor PDFParser(BufferedInputStream) is undefined

我遇到错误

The constructor PDFParser(BufferedInputStream) is undefined

我正在尝试使用 Selenium 阅读 PDF 内容。

WebDriver driver=new FirefoxDriver();
driver.get("http://www.axmag.com/download/pdfurl-guide.pdf");
URL TestURL = new URL("http://www.axmag.com/download/pdfurl-guide.pdf");
BufferedInputStream TestFile = new BufferedInputStream(TestURL.openStream());
PDFParser TestPDF = new PDFParser(TestFile);
TestPDF.parse();
String TestText = new PDFTextStripper().getText(TestPDF.getPDDocument());
System.out.println(TestText);
Assert.assertTrue(TestText.contains("Open the setting.xml, you can see it is like this"));

有人可以帮忙吗?

我遇到了和你一样的问题。问题是由于使用 (Apache PDFBox 2.0.0 API) jar 文件。 从构建路径中删除它们并使用 (Apache PDFBox 1.8.11 API) 作为 PDFParser class in 2.0 没有 PDFParser(BufferedInputStream args) 构造函数。但是 1.8 有 PDFParser(InputStream args) 构造函数。所以它一定会解决你的问题。

我也会分享我的代码。如果你需要帮助,你可以从那里得到帮助。

InputStream is = new FileInputStream(getLatestFile);
        PDFParser parser = new PDFParser(is);
        parser.parse();
        String output=new PDFTextStripper().getText(parser.getPDDocument());
        System.out.println(output);
        parser.getPDDocument().close(); 

PDFBox 2.0.2(也适用于 1.8.*)的最佳代码是这样的 - 您只需调用 PDDocument.load() 即可打开 PDF 文件:

WebDriver driver = new FirefoxDriver();
driver.get("http://www.axmag.com/download/pdfurl-guide.pdf");
URL url = new URL("http://www.axmag.com/download/pdfurl-guide.pdf");
BufferedInputStream bis = new BufferedInputStream(url.openStream());
PDDocument doc = PDDocument.load(bis);
String text = new PDFTextStripper().getText(doc);
doc.close();
bis.close();
System.out.println(text);
Assert.assertTrue(text.contains("Open the setting.xml, you can see it is like this"));