如何使用Selenium获取Chrome浏览器控制台日志[INFO]条目

8
我在使用Selenium时遇到了问题,无法获取Chrome浏览器控制台日志中的[INFO]条目。我只能获取错误(WARNING,SEVERE)类型的条目。是否有办法获得与错误条目不同的内容,因为我需要获取[INFO]条目并基于其内容进行断言。最近我读到Selenium只能返回错误条目,这是准确的吗?非常感谢您提供的任何信息,感谢您的关注和时间!

3个回答

3
感谢您的回答,但很遗憾,它们都对我没有用。我已经找到了解决方案,使用了以下方法来解决我的问题:
    ChromeOptions options = new ChromeOptions();
    options.setCapability(ChromeOptions.CAPABILITY, getCap());
    WebDriver driver = new ChromeDriver(options);

除了定制的方法之外:

private static DesiredCapabilities getCap() {
    DesiredCapabilities caps = DesiredCapabilities.chrome();
    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.PERFORMANCE, Level.INFO);
    logPrefs.enable(LogType.PROFILER, Level.INFO);
    logPrefs.enable(LogType.BROWSER, Level.INFO);
    logPrefs.enable(LogType.CLIENT, Level.INFO);
    logPrefs.enable(LogType.DRIVER, Level.INFO);
    logPrefs.enable(LogType.SERVER, Level.INFO);
    caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
    return caps;
}

最后我不得不编写一个过滤方法,因为 Selenium 的方法对我来说无法正常工作,并返回了所有条目:

private static List<LogEntry> filterLog(LogEntries entries) {
    List<LogEntry> logs = new ArrayList<>();
    for (LogEntry entry : entries) {
        if(entry.getLevel().toString().equals(INFO)) {
            logs.add(entry);
        }
    }
    return logs;
}

2

从文档中(http://chromedriver.chromium.org/logging):

默认情况下,ChromeDriver仅将警告/错误记录到stderr。调试问题时,启用更详细的日志记录非常有帮助。

同样来自文档:

System.setProperty("webdriver.chrome.logfile", "D:\\chromedriver.log");
System.setProperty("webdriver.chrome.verboseLogging", "true");

希望它有效。

备选方案

如果上述方法不起作用,您可以尝试以下方法,这次使用 ChromeOptions 对象:

ChromeOptions options = new ChromeOptions();
options.setArguments("--log-level=1");

或者从(https://www.chromium.org/for-testers/enable-logging)获取。

要启用日志记录,请使用以下命令行标志启动Chrome: --enable-logging --v=1

翻译为:

options.setArguments("--enable-logging --v=1");

对我来说没有起作用。它仍然只记录错误信息。 - Pran Kumar Sarkar
这对我有用。非常感谢!这救了我的一天! - S Chathuranga Jayasinghe

0
对于使用Chrome.Options的任何人来说,只需设置以下功能即可:
options = Options()
options.set_capability('goog:loggingPrefs', { 'browser':'ALL' })

使用日志的方法:
logs = driver.get_log("browser")
for log in logs:
    print(log)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接