doberkofler
doberkofler

Reputation: 10361

How to enable chromedriver logging in from the selenium webdriver

How can I enable the chromedriver verbose logging capabilities from within the selenium webdriver?

I found the appropriate methods loggingTo and enableVerboseLogging but cannot seem to use them prtoperly:

require('chromedriver');
const webdriver = require('selenium-webdriver');

let capabilities = webdriver.Capabilities.chrome();
capabilities.setScrollBehavior(1);
let builder = new webdriver.Builder().withCapabilities(capabilities);
builder.enableVerboseLogging(); // fails!!!
let driver = builder.build();

Upvotes: 7

Views: 7198

Answers (1)

Xiaoming
Xiaoming

Reputation: 659

In comment of chrome.js, there is a way to enable logging for chromewebdriver

 *
 * By default, every Chrome session will use a single driver service, which is
 * started the first time a {@link Driver} instance is created and terminated
 * when this process exits. The default service will inherit its environment
 * from the current process and direct all output to /dev/null. You may obtain
 * a handle to this default service using
 * {@link #getDefaultService getDefaultService()} and change its configuration
 * with {@link #setDefaultService setDefaultService()}.
 *
 * You may also create a {@link Driver} with its own driver service. This is
 * useful if you need to capture the server's log output for a specific session:
 *
 *     let chrome = require('selenium-webdriver/chrome');
 *
 *     let service = new chrome.ServiceBuilder()
 *         .loggingTo('/my/log/file.txt')
 *         .enableVerboseLogging()
 *         .build();
 *
 *     let options = new chrome.Options();
 *     // configure browser options ...
 *
 *     let driver = chrome.Driver.createSession(options, service);
 *

Also you have other option:

  • Running ChromeDriver as a standalone process

Since the ChromeDriver implements the wire protocol, it is fully compatible with any RemoteWebDriver client. Simply start up the ChromeDriver executable (that works as a server) with arguments --log-path and --verbose, create a client, and away you go:

WebDriver driver = new RemoteWebDriver(
  "http://localhost:9515",
  DesiredCapabilities.chrome()
);
driver.get("http://www.google.com");

Upvotes: 4

Related Questions