How to get Chrome browser console log [INFO] entries with Selenium
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;}
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");