【发布时间】:2022-11-17 20:19:30
【问题描述】:
我正在记录中的所有事件硒项目与C#和N单位使用 ThreadStatic 属性,因为每个测试都是在不同的线程中创建的。我面临的问题是在CreateDriver 方法中。该事件正在新线程中打开,现在 LoggingClass 中的 internalLog 变量位于不同的线程中。结果,该变量为空。我正在寻找一种方法来记录消息范围测试作为测试的其他消息。
技术:
- C#
- 硒
- N单位
- 范围报告
public class LoggingClass
{
[ThreadStatic]
private static ExtentTest internalLog;
private void LogMessage(Status status, string message)
{
internalLog.Log(status, message);
}
}
public class GlobalEnvironment
{
// I initialize the log here
public static ILog Logger => applicationLogger;
}
public class Driver
{
public static IWebDriver CreateDriver()
{
// I create the driver here and then I subscribe to the event for the console
IJavaScriptEngine monitor = new JavaScriptEngine(driver);
List<string> consoleMessages = new List<string>();
monitor.JavaScriptConsoleApiCalled += (sender, e) =>
{
GlobalEnvironment.Logger.Info($"Log: {e.MessageContent}");
};
await monitor.StartEventMonitoring();
}
}
【问题讨论】:
标签: c# selenium-webdriver events extentreports selenium4