使用URL的PDF自动化';这是已经打开的东西的延续
本文关键字:延续 PDF URL 自动化 使用 | 更新日期: 2023-09-27 18:19:37
目前我正在使用c#和PDFBox的Selenium Webdriver来自动处理报告的PDF文本。现在,使用PDFBox,我们可以解析给定URL链接的pdf,URL=新URL("pdf链接");但是,这会在没有先决条件的情况下直接获取URL链接。
如果我使用直接的URL地址访问PDF,我会得到一个"找不到资源"的错误。我基本上需要登录到应用程序,并选择我需要的报告,以便加载实际的PDF。它具有相同的地址,只是它是在应用程序中加载的,而不是直接加载的。我该如何将Selenium与PDFbox联系起来?,这样,代码就不会打开一个直接指向"拒绝权限"URL的新URL,而是指向屏幕上已经预装的具有相同URL地址的PDF报告?
URL url = new URL("link of url");
BufferedInputStream input = new BufferedInputStream(url.openStream());
PDFParser parsepdf = new PDFParser(input);
parsepdf.parse();
textofpdf = new PDFTextStripper().getText(parsepdf.getPDDocument())
因此,本质上,我有一个SeleniumTest类,它执行登录和打开Report的功能。之后,我调用上面的PDFParse方法。这个方法当前的作用就像加载了一个新的URL,而不是继续当前的Selenium会话。
区块报价
试试这个:
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
String parsedText = null;
URL url = new URL(strURL);
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("172.18.65.50", 8080));
URLConnection urlc = url.openConnection(proxy);
urlc.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2");
RandomAccessBufferedFileInputStream file = new RandomAccessBufferedFileInputStream(urlc.getInputStream());
PDFParser parser = new PDFParser(file);
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdfStripper.setStartPage(1);
pdfStripper.setEndPage(1);
pdDoc = new PDDocument(cosDoc);
parsedText = pdfStripper.getText(pdDoc);