Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Selenium/Java断言是否存在文本_Java_Selenium_Selenium Webdriver_Testng - Fatal编程技术网

无法使用Selenium/Java断言是否存在文本

无法使用Selenium/Java断言是否存在文本,java,selenium,selenium-webdriver,testng,Java,Selenium,Selenium Webdriver,Testng,我试图通过从PDF中提取文本,然后检查我想要的文本是否存在于提取的文本中来断言PDF 代码正确地提取PDF。问题是,不管PDF提取的文本是否包含我的文本,断言都会通过 我不知道为什么会失败 public static boolean verifyPDFContent(String reqTextInPDF) throws IOException{ PDDocument doc = PDDocument.load(new File("User/download/test.pd

我试图通过从PDF中提取文本,然后检查我想要的文本是否存在于提取的文本中来断言PDF

代码正确地提取PDF。问题是,不管PDF提取的文本是否包含我的文本,断言都会通过

我不知道为什么会失败

  public static boolean verifyPDFContent(String reqTextInPDF) throws IOException{

        PDDocument doc = PDDocument.load(new File("User/download/test.pdf"));
        PDFTextStripper pdfStripper = new PDFTextStripper();
        String text = pdfStripper.getText(doc);
        doc.close();
        System.out.println(text);
        Assert.assertTrue (text.equals (reqTextInPDF));
        return text.contains(reqTextInPDF);

    }
我称之为:

@Then("^I should verify$")
    public void iShouldVerify() throws Throwable {
        export_inspections.verifyPDFContent("z" );
    }

您可以这样做:

String pdf = "some text contains z inside";
String pdf2 = "some text not contains inside";
System.out.println(pdf.contains("z")); // returns true
System.out.println(pdf2.contains("z")); // returns false
因此,您只需断言语句是否返回true,如下所示:

Assert.assertTrue("The pdf doesn't contain needed text", text.contains(reqTextInPDF));

对于初学者,此代码没有编译,因为它有无法访问的代码。抱歉,我现在已经编辑了它。我认为断言没有传递。您的执行甚至没有到达断言。在断言调用之前有一个
return
语句,因此将
Assert.assertTrue()
呈现为死代码。我现在已经编辑了代码。即使PDF中有我指定的文本,断言也会失败。无需使用通配符,您可以在断言中使用text.contains,如
assert.assertTrue(text.contains(reqTextInPDF))