9

I am having issues getting chrome browser console log [INFO] entries with Selenium and the only Level type of entries I am getting are the errors(WARNING, SEVERE).

Is there any way to get anything different than the error entries as I need to get the [INFO] entries and assert based on their content, I have read recently that Selenium is able to return entries only for errors is that accurate?

Would really appreciate any information given, thank you for your attention and time!

1

3 Answers 3

3

thank you for your answer but unfortunately none of them worked for me, I have managed to come up with a solution for my issue using:

    ChromeOptions options = new ChromeOptions();
    options.setCapability(ChromeOptions.CAPABILITY, getCap());
    WebDriver driver = new ChromeDriver(options);

Alongside with the custom made method:

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;
}

And finally had to make a filter method as the Selenium one was not working properly for me and was returning all of the entries:

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;
}
Sign up to request clarification or add additional context in comments.

Comments

2

From the documentation (http://chromedriver.chromium.org/logging):

By default ChromeDriver logs only warnings/errors to stderr. When debugging issues, it is helpful to enable more verbose logging.

Also from documentation:

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

Hope that works.

Alternative Option

You could try the following if the above doesn't work, this time using the ChromeOptions object instead:

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

or from (https://www.chromium.org/for-testers/enable-logging)

To enable logging, launch Chrome with these command line flags: --enable-logging --v=1

Which translates into:

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

2 Comments

It didn't work for me. It is still logging only errors.
This worked for me. Thanks a lot! This saved my day!
0

For anyone doing this using chrome.Options

Simply set the capability:

options = Options()
options.set_capability('goog:loggingPrefs', { 'browser':'ALL' })

To use the logs:

logs = driver.get_log("browser")
for log in logs:
    print(log)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.