如何让Selenium在Docker中运行时打印浏览器日志?

问题描述 投票:0回答:1

我正在尝试使用用 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 中运行测试时显示日志?

c# docker selenium-webdriver testing webdriver
1个回答
0
投票

在 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}");
}
© www.soinside.com 2019 - 2024. All rights reserved.