我正在尝试使用用 C# 编写的 Selenium 测试用例之一来调试问题,并且我想查看我放在前端的浏览器日志。当我在 Docker 中运行测试时,我需要这些日志来显示,因为当我通过 IDE 在本地运行它时,它会通过,但当它在 Docker 上运行时,它会失败。
这是我必须尝试获取浏览器日志的代码。
var entries = Driver.Manage().Logs.GetLog(LogType.Browser);
foreach (var entry in entries) {
Console.WriteLine(entry.ToString());
}
当我通过 IDE 在本地运行测试时,日志显示正常,但是当我在 Docker 中运行时,这行日志不显示任何内容。 (但是使用
Console.WriteLine()
的其他 Selenium 日志确实会出现在 Docker 上。)有没有办法让我在 Docker 中运行测试时显示日志?
在 javascript 中你可以使用类似的东西
const logs = await driver.manage().logs().get('browser');
console.log(logs);
直接在测试套件中(在获取之后)。您可能还想抛出一个超时,以防页面需要一段时间才能加载。
在 C# 中,看起来你可以做类似的事情
// Capture browser logs
var logs = driver.Manage().Logs.GetLog(LogType.Browser);
// Print logs to console
foreach (var logEntry in logs) {
Console.WriteLine($"[{logEntry.Timestamp}] [{logEntry.Level}] {logEntry.Message}");
}