Как проверить URL сайта, на котором есть только PDF-контент? - PullRequest
0 голосов
/ 09 апреля 2020

Ресурсы: JAVA, Selenium, TestNG, Maven

проблема: я хотел бы проверить страницу, содержащую только PDF-контент.

Что я могу утверждать на данный момент :

  1. После нажатия кнопки на родительской странице я могу перенаправить и переключить windowHandle из родительского окна

  2. Синтаксис URL правильный или нет

  3. URL дает нам 200 HTTP-код состояния или нет

  4. В теле DOM этот элемент видим или нет By.xpath ("// * [@ type = 'application / pdf'] ");

Примечание. Мой разработчик сказал мне, что существует два вида PDF (1) на основе текста (2) На основе изображения

У меня может быть PDF на основе изображений, поэтому я не могу читать с помощью API PDFbox (я полагаю).

Другой API (PDFbox) пробовал: приведенный ниже код работает с некоторым другим URL-адресом тестового PDF, но когда Я выполняю тот же код в URL-адресе PDF своей компании, затем вижу сообщение «Ошибка конца файла», я пытался также обработать / google EOF ошибку, но не увенчался успехом.

driver.get("http://www.axmag.com/download/pdfurl-guide.pdf");

String getURL = driver.getCurrentUrl();

PDDocument doc = null;

BufferedInputStream file = null;

String output = null;

URL urlOfPdf = new URL(getURL);

BufferedInputStream fileToParse = new BufferedInputStream(urlOfPdf.openStream());

PDDocument document = PDDocument.load(fileToParse);

output = new PDFTextStripper().getText(document);

Assert.assertTrue(output.contains("some text"));

http://www.testingdiaries.com/selenium-webdriver-read-pdf-content/

трассировка ошибок EOF:

java.io.IOException: Error: End-of-File, expected line
    at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1124)
    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 com.ecompany.tests.RunOcrTest.validatePdfRunSummary1(RunOcrTest.java:135)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.privateRun(TestRunner.java:648)
    at org.testng.TestRunner.run(TestRunner.java:505)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
    at org.testng.SuiteRunner.run(SuiteRunner.java:364)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
    at org.testng.TestNG.runSuites(TestNG.java:1049)
    at org.testng.TestNG.run(TestNG.java:1017)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

Что я хочу знать: как мы можем справиться с таким сценарием? Как проверить такой тест?

Спасибо

...