How to obtain native logger in Selenium WebDriver How to obtain native logger in Selenium WebDriver selenium selenium

How to obtain native logger in Selenium WebDriver


Enable logging in the driver you're using, select which log types you're interested in and the log level (I'm using FirefoxDriver, enabling all types of logs and collecting all log messages)

LoggingPreferences logs = new LoggingPreferences();logs.enable(LogType.BROWSER, Level.ALL);logs.enable(LogType.CLIENT, Level.ALL);logs.enable(LogType.DRIVER, Level.ALL);logs.enable(LogType.PERFORMANCE, Level.ALL);logs.enable(LogType.PROFILER, Level.ALL);logs.enable(LogType.SERVER, Level.ALL);DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();desiredCapabilities.setCapability(CapabilityType.LOGGING_PREFS, logs);WebDriver driver = new FirefoxDriver(desiredCapabilities);

Then, after running the test you can collect the logs (I'm only collecting the DRIVER logs, but you can do the same for any type of log)

Logs logs = driver.manage().logs();LogEntries logEntries = logs.get(LogType.DRIVER);for (LogEntry logEntry : logEntries) {    System.out.println(logEntry.getMessage());}


Try

driver.manage().logs()

You will get Logs interface that has methods to get logs and log types. See Logs interface docs


I'm using log4j for logging as utils logger is the most easiest and straight forward one that, that can be used (IMHO).

POM dependencies:

<dependency>          <groupId> org.apache.cassandra</groupId>          <artifactId>cassandra-all</artifactId>          <version>0.8.1</version>      </dependency>      <dependency>          <groupId>org.slf4j</groupId>          <artifactId>slf4j-api</artifactId>          <version>1.6.6</version>      </dependency>      <dependency>          <groupId>org.slf4j</groupId>          <artifactId>jcl-over-slf4j</artifactId>          <version>1.6.6</version>          <scope>runtime</scope>      </dependency>      <dependency>          <groupId>org.slf4j</groupId>          <artifactId>jul-to-slf4j</artifactId>          <version>1.6.6</version>          <scope>runtime</scope>      </dependency>      <dependency>          <groupId>org.slf4j</groupId>          <artifactId>log4j-over-slf4j</artifactId>          <version>1.6.6</version>          <scope>runtime</scope>      </dependency>

imports are following:

import org.slf4j.Logger;import org.slf4j.LoggerFactory;

usage:

private static Logger log = LoggerFactory.getLogger(classname.class);

and then just use it as such:

logger.info ("butonCLick");driver.findElement(By.id("blablabla")).click();

Hope this works for you.