Selenium webdriver Selenium PDF解析器

Selenium webdriver Selenium PDF解析器,selenium-webdriver,pdfbox,Selenium Webdriver,Pdfbox,在我的应用程序中,我将在一个页面中登陆,其中将有一个文本,我必须在同一页面中打开一个PDF,并将PDF中的文本与主页中的文本进行比较。 我正在使用pdfbox-1.8.15 但是当我运行下面的代码时,得到了这个异常: 线程“main”java.io.IOException中的异常: 错误:文件结束,预期行位于 org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1523)位于 org.apache.pdfbox.pdfp

在我的应用程序中,我将在一个页面中登陆,其中将有一个文本,我必须在同一页面中打开一个PDF,并将PDF中的文本与主页中的文本进行比较。 我正在使用pdfbox-1.8.15

但是当我运行下面的代码时,得到了这个异常:

线程“main”java.io.IOException中的异常: 错误:文件结束,预期行位于 org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1523)位于 org.apache.pdfbox.pdfparser.pdfparser.parseHeader(pdfparser.java:372)位于 org.apache.pdfbox.pdfparser.pdfparser.parse(pdfparser.java:186)位于 TestCases.lastpdf.main(lastpdf.java:83)


您试图打开的Pdf文件。它是在文件系统中还是在网页中?请将您在
url.openStream()
中获得的内容保存到临时文件中,以确定该文件是否真的是PDF文件。而不是网页或重定向。请编辑您的问题以添加完整的堆栈跟踪,并提及哪一行有异常(我假设它是
parser.parse();
,但我更愿意确定)@Bhargav Marpu-感谢您的跟进。PDF在网页@Tilman Hausherr中-感谢您的跟进。是,异常在parser.parse()中;
driver.findElement(By.xpath("//*[@id=\"ctl00_cph_main_rg_QiSummaries_ctl00__0\"]/td[2]/img")).click();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

String winHandleBefore = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles()){
    //Switch to child window
    driver.switchTo().window(winHandle);
}
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
URL url = new URL(driver.getCurrentUrl());
System.out.println(url);

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

String mypdftxt;
BufferedInputStream fileToParse = new BufferedInputStream(url.openStream()); 

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
PDFParser parser = new PDFParser(fileToParse);
parser.parse(); // exception occurs here

mypdftxt  = new PDFTextStripper().getText(parser.getPDDocument());

System.out.println(mypdftxt);