c# - Extent 报告 Selenium WebDriver 屏幕截图加载问题 c#
问题描述
我正在使用下面的代码将屏幕截图保存到与我的报告 HTML 文件相同的文件夹 (d:\DevTeam\LSPTestSuites) 中。
ScreenshotFilePath = $"{Reporter.LatestResultsReportFolder}\\{screenshotName}.jpg";
ScreenshotFilePath = ScreenshotFilePath.Replace('/', ' ').Replace('"', ' ');
ss.SaveAsFile(ScreenshotFilePath, ScreenshotImageFormat.Png);
但是如果我将文件夹复制到另一个位置,则不会加载屏幕截图。
report.html文件中保存的完整截图文件路径如下:
<td class='step-details'>Launch Introductory Video.<img data-featherlight='d:\DevTeam\LSPTestSuites\20181128_1135\PASSED_STEP_TCID31906a_Launch Introductory Video..jpg' class='step-img' src='d:\DevTeam\LSPTestSuites\20181128_1135\PASSED_STEP_TCID31906a_Launch Introductory Video..jpg' data-src='d:\DevTeam\LSPTestSuites\20181128_1135\PASSED_STEP_TCID31906a_Launch Introductory Video..jpg'></td>
解决方案
在当前项目目录中拥有“屏幕截图”文件夹(位于根位置)后,您可以通过以下方式获取它:
//Set Current Project directory
public static String dir = AppDomain.CurrentDomain.BaseDirectory;
public static FileInfo fileInfo = new FileInfo(dir);
public static DirectoryInfo currentDir = fileInfo.Directory.Parent.Parent;
public static string parentDirName = currentDir.FullName;
//Save screenshot
Screenshot file = ((ITakesScreenshot)driver).GetScreenshot();
file.SaveAsFile(parentDirName + "\\Screenshots\\" + "Tempname.png", ScreenshotImageFormat.Png);
//To load it for Selenium Extent Report
testlog.Info("Details with screenshot" , MediaEntityBuilder.CreateScreenCaptureFromPath(parentDirName + "\\Screenshots\\" + "Tempname.png").Build());
推荐阅读
- java - java swing应用架构如何组织?
- python - pandas 重采样语法示例
- r - 数据集未加入
- angular - 是否可以在 NgClass 指令中使用正则表达式?
- c# - GetTextFromPage() 方法等效
- jenkins - Jenkins 2.192:HTTP 错误 403:请求中未包含有效的碎屑
- node.js - 在 mongoose 的嵌套查询中按 id 查找用户
- c++ - 为什么我可以在没有实例变量的情况下访问静态回调方法中的静态成员变量?
- ios - CoreStore 分段列表监控如何在运行时指定 .where 子句
- java - 以编程方式启动 WinAppDriver.exe