我正在嘗試將屏幕截圖附加到生成的報告中。據我所知,我正在添加文件路徑,因此它應該附加。這是捕獲屏幕截圖并生成文件的代碼 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(); }在測試結束時,我希望能夠打開報告并查看報告內的屏幕截圖。
1 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
比爾的評論足以解決這個問題:
“屏幕截圖文件的預期路徑始終相對于報告文件本身。如果要將屏幕截圖存儲在與報告文件相同的文件夾中,請指定不路徑,僅指定文件名,否則,例如,如果您有一個位于報告位置外的\screenshots文件夾,請在文件名前面加上“屏幕截圖”+文件名。對完整路徑進行硬編碼幾乎永遠不會起作用。
添加回答
舉報
0/150
提交
取消