npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

edgedriver

v5.4.0

Published

Microsofts' EdgeDriver for Node.js

Downloads

1,762,855

Readme

EdgeDriver CI Audit

An NPM wrapper for Microsofts' EdgeDriver. It manages to download various (or the latest) Edgedriver versions and provides a programmatic interface to start and stop it within Node.js. Note: this is a wrapper module. If you discover any bugs with EdgeDriver, please report them in the official repository.

Installing

You can install this package via:

npm install edgedriver

Once installed you can start Edgedriver via:

npx edgedriver --port=4444

By default, this package downloads Edgedriver when used for the first time through the CLI or the programmatical interface. If you like to download it as part of the NPM install process, set the EDGEDRIVER_AUTO_INSTALL environment flag, e.g.:

EDGEDRIVER_AUTO_INSTALL=1 npm i

To get a list of available CLI options run npx edgedriver --help. By default this package tries to find the Mircosoft Edge version installed on a given system. If you prefer to have it install a custom EdgeDriver version you can define the environment variable EDGEDRIVER_VERSION when running in CLI, e.g.:

$ npm i edgedriver
$ EDGEDRIVER_VERSION=105.0.1343.33 npx edgedriver --version
Microsoft Edge WebDriver 105.0.1343.33 (4122bb4646b33f33bca5d269490b9caadfc452b2)

Programmatic Interface

You can import this package with Node.js and start the driver as part of your script and use it e.g. with WebdriverIO.

Exported Methods

The package exports a start, findEdgePath and download method.

start

Starts an EdgeDriver instance and returns a ChildProcess. If EdgeDriver is not downloaded it will download it for you.

Params: EdgedriverParameters - options to pass into EdgeDriver (see below)

Example:

import { start } from 'edgedriver';
import { remote } from 'webdriverio';
import waitPort from 'wait-port';

/**
 * first start EdgeDriver
 */
const cp = await start({ port: 4444 });

/**
 * wait for EdgeDriver to be up
 */
await waitPort({ port: 4444 });

/**
 * then start WebdriverIO session
 */
const browser = await remote({ capabilities: { browserName: 'msedge' } });
await browser.url('https://webdriver.io');
console.log(await browser.getTitle()); // prints "WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO"

/**
 * kill Edgedriver process
 */
cp.kill();

Note: as you can see in the example above this package does not wait for the driver to be up, you have to manage this yourself through packages like wait-on.

download

Method to download an EdgeDriver with a particular version. If version parameter is omitted it tries to detect the version based on the Edge browser installed on the system.

Params: string - version of Edgedriver to download (optional) Returns: string - path to Edgedriver binary

findEdgePath

The findEdgePath is a helper method to find the Microsoft Egde binary on given system.

Returns: string - path to Microsoft Edge binary

CJS Support

In case your module uses CJS you can use this package as follows:

const { start } = require('edgedriver')
// see example above

Custom CDN URL

This allows you to use your own endpoints for downloading Edgedriver binaries. It is useful in air gapped scenarios or if you have download restrictions, such as firewalls. You can either set an environment variable:

$ npm i edgedriver
$ EDGEDRIVER_CDNURL=https://msedgedriver.azureedge.net npx edgedriver --version

or create a .npmrc with the following content:

edgedriver_cdnurl=https://msedgedriver.azureedge.net

Options

The start method offers the following options to be passed on to the actual Edgedriver CLI.

edgeDriverVersion

The version of EdgeDriver to start. See Egdedriver directory list for all available versions, platforms and architecture.

Type: number Default: latest

port

The port on which the driver should run.

Example: 9515 Type: number

adbPort

The port on which the ADB driver should run.

Example: 9515 Type: number

baseUrl

Base URL path prefix for commands, e.g. wd/url.

Example: /

Type: string

logPath

Write server log to file instead of stderr, increases log level to INFO

Type: string

logLevel

Set log level. Possible options ALL, DEBUG, INFO, WARNING, SEVERE, OFF.

Type: string

verbose

Log verbosely (equivalent to --log-level=ALL)

Type: boolean

silent

Log nothing (equivalent to --log-level=OFF)

Type: boolean

appendLog

Append log file instead of rewriting.

Type: boolean

replayable

Log verbosely and don't truncate long strings so that the log can be replayed (experimental).

Type: boolean

readableTimestamp

Add readable timestamps to log.

Type: boolean

enableChromeLogs

Show logs from the browser (overrides other logging options).

Type: boolean

bidiMapperPath

Custom bidi mapper path.

Type: string

allowedIps

Comma-separated allowlist of remote IP addresses which are allowed to connect to EdgeDriver.

Type: string[] Default: ['']

allowedOrigins

Comma-separated allowlist of request origins which are allowed to connect to EdgeDriver. Using * to allow any host origin is dangerous!

Type: string[] Default: ['*']

cacheDir

The path to the root of the cache directory.

Type: string Default: process.env.EDGEDRIVER_CACHE_DIR || os.tmpdir()

customEdgeDriverPath

Don't download EdgeDriver, instead use a custom path to it, e.g. a cached binary.

Type: string Default: process.env.EDGEDRIVER_PATH


For more information on WebdriverIO see the homepage.