如何阻止 ExtentReports 将 Selenium 日志中的 HTML 引用转换为实际的 HTML?

How to stop ExtentReports from converting HTML references in your Selenium logs to actual HTML?

我将 ExtentReports 4 for .Net 与 HTML V3 报告器一起使用。我的问题是,当测试失败时,我将失败消息输出到 ExtentReport,如果该失败消息包含 HTML 标记,它会将其转换为报告中的实际 HTML!!这会弄乱页面。

例如

OpenQA.Selenium.ElementClickInterceptedException : element click intercepted: Element <button type="button" class="btn btn-sm btn-default" data-bind="click: AddDashlet" data-toggle="modal" data-target="#dashboardSelector">...</button> is not clickable at point (584, 124). Other element would receive the click: <a href="#" data-bind="click: Toggle">...</a>

上面的消息生成了一个实际的按钮!

文档只是说了以下内容:

Simply insert custom HTML in the logs by using an HTML tag:

test.Log(Status.Info, "Usage: <b>BOLD TEXT</b>");

正在使用 Nunit 的 Testcontext 输出错误消息。可能我可以从中删除 < 和 > 字符,但是有什么办法可以阻止这种情况发生吗?谢谢

问题是因为您传递了带有 HTML 标记的异常消息,ExtentReports 认为您正在尝试传递一些 HTML 代码。

虽然以下不是好的解决方案,但它可以作为解决您的问题的一种方法。只需将异常消息中的“<”和“>”标记替换为替换,然后传递给 test.log() 方法。

//Use <small> or <p> tags based on your convenient but you have to keep your exception message inside some HTML tag as I have done below.
String exceptionMessage = "Your exception message which has <a> tag"

test.Log(Status.Info, "<small>"+exceptionMessage.Replace("<","&#60").Replace(">","&#62")+"</small>");