我正在尝试为失败方法截取屏幕截图,并且也想在我的报告中添加相同内容,我可以截取屏幕截图,但无法在HTML报告中显示相同内容。以下是我的代码,朋友有什么线索吗?
public class SB1 {
private static Logger logger = Logger.getLogger(SB1.class);
WebDriver driver = new FirefoxDriver();
@Test
public void Testone() {
driver.get("http://www.google.com/");
assert false;
}
public void catchExceptions(ITestResult result) {
System.out.println("result" + result);
String methodName = result.getName();
System.out.println(methodName);
if (!result.isSuccess()) {
try {
String failureImageFileName = new SimpleDateFormat("MM-dd-yyyy_HH-ss").format(new GregorianCalendar().getTime())+ ".png";
File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(failureImageFileName));
String userDirector = System.getProperty("user.dir") + "/";
Reporter.log("<a href=\""+ userDirector + failureImageFileName +"\"><img src=\"file:///" + userDirector
+ failureImageFileName + "\" alt=\"\""+ "height='100' width='100'/> "+"<br />");
Reporter.setCurrentTestResult(null);
} catch (IOException e1) {
e1.printStackTrace();
}
}
答案 0 :(得分:4)
您是否将ESCAPE_PROPERTY设置为false?如果您希望reportng发布屏幕截图,那么您将不得不这样做 -
private static final String ESCAPE_PROPERTY = "org.uncommons.reportng.escape-output";
并在你的setUp中 -
System.setProperty(ESCAPE_PROPERTY, "false");
答案 1 :(得分:0)
我试过这个。看起来如果你将System Property设置为false,它会从ENTIRE日志中删除转义...从我所知道的,报告是在测试之后生成的,当时系统属性设置为什么。我想插入截图(使用上面的代码),但我不想删除其他格式(br标签)。
答案 2 :(得分:0)
您可以使用以下代码。
Reporter.log("<br>Chrome driver launched for ClassOne</br>");
或者您可以使用自定义方法,每次都不需要附加br标记,使用以下自定义方法。
public void customLogReport(String testCaseDescription) throws Exception{
try{
Reporter.log("<br>" + testCaseDescription + "</br>");
}catch(Exception e){
e.printStackTrace();
}
}