阅读使用Selenium WebDriver生成的PDF的最佳方式

问题描述 投票:0回答:2

下午好,

我陷入了测试的最后一步,在插入一系列信息之后,该网站生成了一个pdf付款指南:

PDF generated at the end of the process

我需要捕获绿色信息

这里显示检查源代码时的代码:

<embed id="plugin" type="application/x-google-chrome-pdf" 

src="https://secweb.procergs.com.br/sng/javax.faces.resource/dynamiccontent.properties.xhtml?ln=primefaces&amp;v=5.3.17&amp;pfdrid=a9fc559a-bea3-4bc2-8234-5543c59715cc&amp;pfdrt=sc&amp;pfdrid_c=false&amp;uid=e483b7ac-35d3-429e-9c84-c5db516f1b8c" stream-url="blob:chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/3173c884-d121-48c6-b417-5972f907fe9e" headers="Cache-Control: no-cache, no-store, must-revalidate
Connection: Keep-Alive
Content-Encoding: gzip
Content-Language: pt-br
Content-Type: application/pdf; charset=UTF-8
Date: Mon, 03 Sep 2018 20:26:44 GMT
Expires: Mon, 8 Aug 1980 10:00:00 GMT
Keep-Alive: timeout=16, max=1021
Pragma: no-cache
Server: Apache
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-UA-Compatible: IE=Edge
" background-color="0xFF525659" top-toolbar-height="56" top-level-url="undefined">

按照我的逻辑,我甚至无法从第一步开始,通过一些独特的文本来识别屏幕上PDF的存在:

if (driver0.getPageSource().contains("SECRETARIA DE MODERNIZAÇÃO ADMINISTRATIVA E DOS RECURSOS HUMANOS")) {
System.out.println("Located, we will capture the information ...");
} else {
System.out.println("Not found...");
}

使用PDFUtil库更新主题不成功,我将其添加到库中但它不起作用

这是我的主要测试:

try {
            PDFUtil pdfUtil = new PDFUtil();                
            pdfUtil.getText("C://64914273.pdf");
        } catch (Exception ex) {
            System.out.println(ex);
        }

控制台根本不返回任何内容

感谢那些可以帮助我的人

java selenium-webdriver
2个回答
1
投票

一种选择是保存pdf并使用PDF库读取内容并解析您要查找的文本。

看一下PDFUtil和示例

http://www.testautomationguru.com/introducing-pdfutil-to-compare-pdf-files-extract-resources/


0
投票

我认为只有在使用OCR库将信息放入PDF中时才能实现这一点,但这些信息通常非常脆弱。

我要做的是确定测试范围,如果你可以将测试分开。

一次(自动)测试,检查单击提交时发送的信息或浏览器在HTTP请求中发送的任何内容是否正确。应该是像BrowserMob这样的简单代理来拦截请求。

第二次(手动)测试,检查PDF生成器在收到信息时是否正确显示信息。

因此,一旦发送和检查信息,您的自动化测试将完成,并且只有在PDF生产者引入任何风险时才会运行手动测试

© www.soinside.com 2019 - 2024. All rights reserved.