2017-11-29 10 views
1

ExtentReport HTMLファイルにスクリーンショットを追加しようとしていますが、何らかの理由で画像が存在していてコンソールにそれが見えている正しい場所(hrefは正しい)。ExtentReports - スクリーンショットがレポートに含まれていません - 壊れた画像

Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver); 
String destination = getScreenshotPath(); 
ImageIO.write(screenshot.getImage(), "IMG", new File(destination)); 
test.fail("Details: " + test.addScreenCaptureFromPath(destination)); 

スクリーンショットを先に保存されます:

これは、最新のトライアルコードです。

詳細: 私はデバッグモードを試してみてください、またはレポートを見て、それは次のように印刷されています[email protected] とその下の壊れたイメージがあります:

enter image description here

答えて

1

絶対パスは解決策かもしれませんが、私はそのようにしたくありませんでした。

私は(screenshotName.PNG)を溶液が.addScreenCaptureFromPathに画像の名前を付け、レポートが生成されます同じディレクトリに画像を保存することであることを考え出したのだが、完璧に動作します。

2
は、

私は絶対パスを使用

:仲間を検査画像

テイクスクリーンショットの絶対パスを検証するためにブラウザからケン画像:特定ステップにおいて :

ExtentTest.Fail("message", MediaEntityBuilder.CreateScreenCaptureFromPath(TakeScreenShot.TakesScreenshot(driver, "Fatal")).Build()); 

public static String TakesScreenshot(IWebDriver driver, string FileName) 
    { 

     string pathProject = AppDomain.CurrentDomain.BaseDirectory; 
     string pathScreen = pathProject.Replace("\\bin\\Debug", ""); 
     string path = pathScreen + "project/Test-output/Images/"; 

     StringBuilder TimeAndDate = new StringBuilder(DateTime.Now.ToString()); 
     TimeAndDate.Replace("/", "_"); 
     TimeAndDate.Replace(":", "_"); 
     TimeAndDate.Replace(" ", "_"); 

     string imageName = FileName + TimeAndDate.ToString(); 

     ((ITakesScreenshot)driver).GetScreenshot().SaveAsFile(path + "_" + imageName + "." + System.Drawing.Imaging.ImageFormat.Jpeg); 

     return path + "_" + imageName + "." + "jpeg"; 
    } 

プレビュー方式のパスを持つレポートに画像を添付します方法"TakesScreenshot"スクリーンショットを撮ると

バージョンExtentReport:3、 のC#、 NUnitの3

使用してJava:

 <dependency> 
     <groupId>com.relevantcodes</groupId> 
     <artifactId>extentreports</artifactId> 
     <version>2.41.2</version> 
     </dependency> 

は、次のとおりです。

ExtentTestManager.getTest().log(LogStatus.ERROR, ExtentTestManager.getTest().addScreenCapture("//ABOLUTE/PATH/IMAGE.PNG")); 

よろしく。

関連する問題