未附加到报告的屏幕截图

我正在尝试将屏幕截图附加到生成的报告中。


据我所知,我正在添加文件路径,因此它应该附加。


这是捕获屏幕截图并生成文件的代码


    private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm");


    public static String captureScreen(WebDriver driver, String screenName) throws IOException {


        TakesScreenshot screen = (TakesScreenshot) driver;

        File src = screen.getScreenshotAs(OutputType.FILE);



        String path = "X:\\ExtentReports";

        String javaPath = path.replace("\\", "/");


        File target = Paths.get(javaPath,

                screenName + ".png").toFile();

        FileUtils.copyFile(src, target);


        return javaPath;

    }


    public static String generateFileName(ITestResult results) {

        Date date = new Date();

        String fileName = results.getName() + "_" + dateFormat.format(date);

        return fileName;

//        return results.getName() + "_" + dateFormat.format(date);

    }

}

这是生成报告的地方,并且应该将屏幕ot添加到测试中。通过使用:


.addScreenCaptureFromPath(screenShot));


    public synchronized void afterMethod(ITestResult result) throws IOException {


        String screenShot = CaptureScreenShot.captureScreen(MetricellTest.driver, CaptureScreenShot.generateFileName(result));


        if (result.getStatus() == ITestResult.FAILURE) {

            test.get().log(Status.FAIL, result.getName());

            test.get().log(Status.FAIL, result.getThrowable());

            test.get().fail("Screen Shot : " + test.get().addScreenCaptureFromPath(screenShot));

        } else if (result.getStatus() == ITestResult.SUCCESS) {

            test.get().log(Status.PASS, result.getName());

            test.get().pass("Screen Shot : " + test.get().addScreenCaptureFromPath(screenShot));

        } else if (result.getStatus() == ITestResult.SKIP) {

            test.get().skip("Test Case : " + result.getName() + " has been skipped");


            extent.flush();

            MetricellTest.driver.close();


        }

    }


    @AfterTest

    public void endTest() {

        extent.flush();


    }


在测试结束时,我希望能够打开报告并查看报告内的屏幕截图。



烙印99
浏览 78回答 1
1回答

跃然一笑

比尔的评论足以解决这个问题:“屏幕截图文件的预期路径始终相对于报告文件本身。如果要将屏幕截图存储在与报告文件相同的文件夹中,请指定不路径,仅指定文件名,否则,例如,如果您有一个位于报告位置外的\screenshots文件夹,请在文件名前面加上“屏幕截图”+文件名。对完整路径进行硬编码几乎永远不会起作用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java