Code location

  • Library: javascript/selenium-webdriver/lib/
  • Tests: javascript/selenium-webdriver/test/

Common commands

  • Build: bazel build //javascript/selenium-webdriver/...

Testing

See javascript/selenium-webdriver/TESTING.md

Code conventions

Logging

const logging = require('./logging')
const log_ = logging.getLogger('selenium.webdriver.mymodule')

log_.warning('actionable: something needs attention')
log_.info('useful: driver started successfully')
log_.finer('diagnostic: request details for debugging')

Deprecation

Log a warning directing users to the alternative:

log_.warning('oldMethod is deprecated, use newMethod instead')

Documentation

Use JSDoc for public APIs:

/**
 * Brief description.
 *
 * @param {Type} name description
 * @return {Type} description
 * @throws {ErrorType} when condition
 */

Formatting

JavaScript files are formatted with Prettier. Run ./go format after changes; it will auto-fix all style issues.

Active Prettier config (.prettierrc):

  • printWidth: 120 characters
  • singleQuote: true (use ' not ")
  • semi: false (no semicolons)
  • trailingComma: “all” (trailing commas everywhere ES5+ allows)
  • endOfLine: “lf” (Unix line endings only)