Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@immoweb/webdriver-manager

angular13MIT12.0.6-2TypeScript support: included

A selenium server and browser driver manager for your end to end tests.

angular, test, testing, protractor, webdriver, webdriverjs, selenium, selenium-webdriver

readme

Webdriver Manager CircleCI Status Join the chat at https://gitter.im/angular/webdriver-manager

A selenium server and browser driver manager for your end to end tests. This is the same tool as webdriver-manager from the Protractor repository.

Note: Version 9 and lower please reference pose/webdriver-manager. If there are features that existed in version 9 and lower, please open up an issue with the missing feature or a create a pull request.

Getting Started

npm install -g webdriver-manager

Setting up a Selenium Server

Prior to starting the selenium server, download the selenium server jar and driver binaries. By default it will download the selenium server jar and chromedriver binary.

webdriver-manager update

Starting the Selenium Server

By default, the selenium server will run on http://localhost:4444/wd/hub.

webdriver-manager start

Other useful commands

View different versions of server and driver files:

webdriver-manager status

Clear out the server and driver files. If webdriver-manager start does not work, try to clear out the saved files.

webdriver-manager clean

Running / stopping server in background process (stopping is not yet supported on standalone server 3.x.x):

webdriver-manager start --detach
webdriver-manager shutdown

Help commands

Wedriver-manager has a main help option: webdriver-manager help. There are also other built in help menus for each of the commands. So for example, if you would like to look up all the flag options you can set in update, you could run webdriver-manager update help.

Here are a list of all the commands with help:

webdriver-manager update help
webdriver-manager start help
webdriver-manager clean help
webdriver-manager status help

Other topics:

changelog

12.0.6

Bug Fix

  • (708ade3) fix(responses): response xml and json files (#247)

12.0.5

Bug Fix

  • (242a72f) feat(start): start selenium without making web requests (#232)

12.0.4

Bug Fixes

  • (52d8a23) fix(ignoressl): pass option to both binary and config source

    closes #207.

  • (5af1c1c) fix(cache): change timestamp to 1 hour instead of 10 hours (#223)

    closes #221

12.0.3

Bug Fixes

  • (bb13882) feat(gecko): Improve error message when Github api limit reached. (#217)

    the user. Also, API limit is reached, the error message now directly informs when any other failure occurs the status code is reported. This should hopefully give more info for issue #216.

  • (2cffd30) fix(ignoressl): pass proxy and ignore ssl down to the binary and config source (#208)

    closes #207 and closes #221

12.0.2

  • (0bdf6a4) deps(typescript): use typescript@~2.0.0. fix any types (#203)

12.0.1

  • (6209666) fix(gecko): add additional check for OS when getting latest (#200)

12.0.0

Changes to update

This release gets the latest release for selenium standalone, chromedriver, iedriver, and gecko driver by downloading and parsing either a json or xml file. These json or xml files are cached in the selenium directory. This means for users that provide an alternative cdn will also be required to provide the proper xml or json server response to find these binaries.

Since we are always downloading the latest, the config.json versions will no longer be a place to override these.

Changes to start

If a new release is out and you have old binaries, running webdriver-manager start without specifying any versions should throw an error. The error will tell the user that the binary is not present.

Changes to status

Since we are downloading the latest and not maintaining a default version in config.json, we are dropping the default tag.

Features

  • (fe309ef) feat(latest): get the latest version from the cdn (#198)

    This reads the xml from the CDN to get the latest chromedriver, iedriver, or standalone version if the version is 'latest'. If the release is from Github, use the Github API to get the releases. Also store the downloaded information to a cache in the output directory (default: selenium/). If the file is older than one hour it will be rewritten.

    When getting the status, we are no longer showing the default version. Default versions will be deprecated and will be removed from the config.json file.

    When starting the standalone server, use the 'latest' version by default unless specified by --versions.{binary} flag.

    Change the gulp update task to use 3.0.0-beta4 so Firefox tests will pass.

11.1.1

Bug Fixes

  • (70614a2) fix(ie): Use 32-bit version by default for IEDriver (#181)

    closes #180

  • (6f9a2ab) fix(gecko): Respect versions.gecko in start command. (#184)

    Also bump the geckodriver version to latest.

Dependencies

  • (5881c5b) deps(update): update devDependencies (#187)

11.1.0

  • Update to set the default chrome driver version to 2.26

Features

  • (72e3d9f) feat(status): show the last downloaded version when using status (#177)

    • added a test to run update, then checks status for labels

    closes #172

Bug Fixes

  • (a3b46c7) fix(iedriver): if downloading x64, use x64 version on start command (#173)

    • clang formatting

    closes #147

10.3

11.0.0

Breaking Change:

Features

  • (b5638ef) feat(update): on update, write full binary paths to file (#140)

    • Adding back in curl calls, these were removed on the new Downloader.getFile. Add curl call to reflect proxies.

    • Fix output dir to read from update's options instead of Config

    • Feature will help directConnect users for Protractor. The file will keep track of the last binary version as well as all other binaries downloaded.

      The file will be created in the output directory. By default this is selenium/update-config.json. On clean this file will be removed.

      webdriver-manager update --versions.chrome=2.20 --standalone=false
      --gecko=false

      file created:

      {
       "chrome": {
         "last": "/opt/src/webdriver-manager/selenium/chromedriver_2.20",
         "all": ["/opt/src/webdriver-manager/selenium/chromedriver_2.20"]
       }
      }

      then the user wants to use 2.25:

      webdriver-manager update --versions.chrome=2.25 --standalone=false
      --gecko=false
      

      file created:

      {
       "chrome": {
         "last": "/opt/src/webdriver-manager/selenium/chromedriver_2.25",
         "all": ["/opt/src/webdriver-manager/selenium/chromedriver_2.20",
                 "/opt/src/webdriver-manager/selenium/chromedriver_2.25"]
       }
      }
  • (473ab3e) feat(android): match android arch to os.arch (#164)

    The default was x86-64, but x86 cannot be emulated on ARM. This makes more sense

  • (c864c9a) feat(shutdown): do not error if you try to shutdown a server which is already off (#162)

    When scripting, you might want to defensively run a shutdown command. If the shutdown fails because the server is already off, you don't care. If it fails for another reason, you do care. So I made trying to shutdown a server which is already off just a warning. I added a flag in case you want the old behavior though.

  • (338fffd) feat(quiet/verbose): add --quiet and --verbose flags to control the level of output (#156)

    I added the --quiet flag for cases like: where currently the start --detach; ./tests.sh; webdriver-manager shutdownselenium server output will get mixed in with other output. I also added the--verboseflag forwebdriver-manager updatein case you *really* wanted to see all the output which gets eaten by using--android-accept-licenses`.

  • (91e36a3) feat(android on windows): Support android VMs on windows (#154)

    Closes https://github.com/angular/webdriver-manager/issues/51

  • (d533b03) feat(start android): extend the --detach flag to wait for appium/android (#141)

Bug fixes

  • (26586f1) fix(start): wait for emulated android to really be ready before signaling (#161)

    Before, we were just waiting for the emulator to be running, rather than waiting for the OS to be booted up and ready to instance chrome. While I was doing that I moved some stuff into lib/utils.ts since I felt like too much of lib/cmds/start.ts was being devoted to this one feature. Also closes https://github.com/angular/webdriver-manager/issues/166

  • (a7c6eb5) fix(update/android): 2a1505f broke android
  • (3ee3e1a) fix(fs): path.join does not handle absolute paths as desired (#152)
  • (deead0f) fix(downloader): destroy the request after receiving the header (#144)

    Otherwise we’ll won’t terminate until the whole file was downloaded, even though we don’t need it.

  • (c16bf90) chore(es6): allow to use es6 promises (#160)

    • with node 6 on LTS, we can update the tsconfig to es6
    • update travis tests to use node 6 and 7

10.2.10

  • Since 10.2.9 produced breaking changes, released as version 11.0.0
  • Version 10.2.8 is the same as 10.2.10 due to issue #170.

10.2.8

Features

  • (1f9713a) feat(start and shutdown): Added --detach option for start command and new shutdown command (#130)

  • (88cf46b) feat(version): have a way to get the package version (#136)

    closes #119

Bug fixes

  • (5966b6a) fix(cli): fix setting flag to false (#135)

    • This fixes webdriver-manager update --gecko=false
    • This does not fix webdriver-manager update --gecko=0. Minimist interprets 0 as true.
    • Add options and programs unit tests closes #110
  • (35676ee) fix(gecko): follow redirects for content-length (#133)

10.2.7

Features

  • (66776a0) feat(start): add way to programmatically detect when the selenium server is running (#120)

Bug fixes

  • (dc2f9f9) fix(cli): fix default option values, boolean and string handling (#110) (#122)

    • default option values initialize properly for minimist
    • user-supplied boolean-type option values respected
    • string-type option values are always strings
    • simplify boolean-type option value access
  • (88d6105) fix(gecko): Update geckodriver to 0.11.0 and fix suffixes. (#128)

    Fixes #111

  • (707e015) fix(android): fixed four things for android: (#116)

    • Make appium default to 1.6.0 (Android N didn't work on 1.5.x)
    • Make virtual devices default to google_apis
    • Don't delete old virtual devices on update
    • Update documentation
  • (9fe4b22) fix typo in webdriver-manager/spec/files (#125)

10.2.6

Features

  • (f892ec4) chore(chromedriver): update chromedriver version to 2.25

10.2.5

Bug Fixes

  • (b103850) fix(update): fix undefined gecko getBoolean error (#113)

    closes #107

  • (7fbacf5) fix(start): set the port when standalone server starts

    closes #106

10.2.4

Bug Fixes

  • (3984ea4) fix(filemanager): respect proxy/ignoreSSL options in contentLength HEAD request (#101)
  • (946ee00) fix(chrome_driver): use the x64 binary if chrome driver version is greater than 2.23 (#95)

    • fix(chrome_driver): use the x64 binary if chrome driver version is greater than 2.23
    • fix(chrome_driver): add semver to better determine version number
    • refactor(chrome_driver): check first to see if we have valid semver or not

    closes #93

  • (b183fad) fix(filemanager): Binaries can be downloaded from a custom CDN with alternate_cdn(#97)

    closes #96

Features

10.2.3

Bug Fixes

  • (fa48354) fix(downloader): fix against working proxy (#87)

  • (d6597e8) fix(start): add the correct flags for windows (#83)

    closes #68

  • (c96090c) fix(update): download standalone with proxy and ignore ssl (#81)

    closes #79

Features

  • (7ec082a) feat(start): add a gecko driver path to the start command (#86)

Dependencies

  • (fe85c94) dep(types): update typescript, remove typings in favor of @types (#84)

10.2.2

Bug Fixes

  • (236a8ec) fix(downloader): increase timeouts and unlink sync on download errors (#75)

    closes #62 and #63

  • (fa20ca8) fix(start): check if edge driver exists before adding to args (#73)

    closes #60

  • (8b61b71) fix(start): use ie32 if specified via command line (#72)

    closes #68

Features

  • (8346858) feat(logging): add logging property to selenium standalone (#76)

    closes #61

  • (18f9f1d) chore(selenium): add dev/urandom to selenium start args to prevent startup delays in linux

10.2.1

upgrade to latest chrome driver and selenium standalone server versions

10.2.0

  • (aa1b8b7) feat(ios): iOS support (#57)

10.1.0

Bug Fixes

  • (81c2aa3) fix(iedriver): download url fix for iedriver (#54)

    closes #53

Features

  • (57372eb) feat(edge): add Microsoft Edge support in CLI (#56)

    closes #55

  • (d937245) feat(android): support android

10.0.4

Dependency Upgrades

  • (970167a) dep(typings): update typings (#42)

Bug Fixes

  • (5073e23) fix(folder): fix selenium folder location (#43)

10.0.3

Bug Fixes

  • (d3724fb) fix(config): simplify locating configuration file, selenium folder (#41)

    • Let the bin file decide which webdriver-manager to use
    • Use the configuration file / package from the default position
    • Selenium folder will always be located to webdriver-manager/selenium/

10.0.2

Bug Fixes

  • (5bca026) fix(config): configuration file local look up when used as a dependency (#33)

    closes #32

  • (0cfcc88) fix(binary): Fix typo in fallback case when chalk isn't available.

10.0.1

Bug Fixes

  • (a6f1edd) fix(global): fix finding config.json for global installs and release 10.0.1 (#23)

10.0.0

Bug Fixes

  • (70d32df) fix(dir): check selenium dir and warn user that the folder does not exist (#17)

  • (0ec1443) fix(binary): file type, unzipping, and permissions

    closes #7, #16

  • (a073fd0) fix(npm): use global, local, and project without env

    closes #20

  • (6ccb9d8) fix(versions): versions option should stay consistent with existing webdriver-manager

    closes #6

  • (c34b05c) fix(bin): local, project, and global usage

  • (4a0caf5) fix(dep): fix dependency for chalk

  • (15ae0e8) fix(chmod): set permissions to 755

(1820fbc) Initial commit

Features

  • (374c3e7) feat(length): on update, check to see the file is the correct length

    closes #8

  • (8c47291) feat(local): use the local version of webdriver-tool if it is installed

    closes #5

  • (f0622d2) feat(logs): add chrome logs command line option

closes #11

  • (3b30312) feat(logger): update logging methods (#5)