{"id":18438754,"url":"https://github.com/webdriverio-community/node-edgedriver","last_synced_at":"2026-01-04T21:15:19.863Z","repository":{"id":57219528,"uuid":"54137492","full_name":"webdriverio-community/node-edgedriver","owner":"webdriverio-community","description":"Microsofts' EdgeDriver for Node.js","archived":false,"fork":false,"pushed_at":"2025-04-07T21:01:40.000Z","size":2306,"stargazers_count":5,"open_issues_count":2,"forks_count":10,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-07T21:42:58.395Z","etag":null,"topics":["edge","microsoft-edge","webdriver","webdriverio"],"latest_commit_sha":null,"homepage":"https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webdriverio-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"tidelift":"npm/edgedriver","open_collective":"webdriverio","github":["christian-bromann","webdriverio"]}},"created_at":"2016-03-17T17:22:29.000Z","updated_at":"2025-04-07T20:59:59.000Z","dependencies_parsed_at":"2023-11-20T21:24:02.554Z","dependency_job_id":"0b87c1d8-ca0e-4998-be49-02030a4c9707","html_url":"https://github.com/webdriverio-community/node-edgedriver","commit_stats":{"total_commits":487,"total_committers":12,"mean_commits":"40.583333333333336","dds":0.3162217659137577,"last_synced_commit":"2ce8e5a07f634986a9e126722b272d03a8208352"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio-community%2Fnode-edgedriver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio-community%2Fnode-edgedriver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio-community%2Fnode-edgedriver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio-community%2Fnode-edgedriver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdriverio-community","download_url":"https://codeload.github.com/webdriverio-community/node-edgedriver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737734,"owners_count":20987717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["edge","microsoft-edge","webdriver","webdriverio"],"created_at":"2024-11-06T06:21:36.267Z","updated_at":"2026-01-04T21:15:19.766Z","avatar_url":"https://github.com/webdriverio-community.png","language":"TypeScript","funding_links":["https://tidelift.com/funding/github/npm/edgedriver","https://opencollective.com/webdriverio","https://github.com/sponsors/christian-bromann","https://github.com/sponsors/webdriverio"],"categories":[],"sub_categories":[],"readme":"EdgeDriver [![CI](https://github.com/webdriverio-community/node-edgedriver/actions/workflows/ci.yml/badge.svg)](https://github.com/webdriverio-community/node-edgedriver/actions/workflows/ci.yml) [![Audit](https://github.com/webdriverio-community/node-edgedriver/actions/workflows/audit.yml/badge.svg)](https://github.com/webdriverio-community/node-edgedriver/actions/workflows/audit.yml)\n==========\n\nAn NPM wrapper for Microsofts' [EdgeDriver](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/). 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](https://github.com/MicrosoftEdge/EdgeWebDriver).\n\n# Installing\n\nYou can install this package via:\n\n```sh\nnpm install edgedriver\n```\n\nOnce installed you can start Edgedriver via:\n\n```sh\nnpx edgedriver --port=4444\n```\n\nBy 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.:\n\n```sh\nEDGEDRIVER_AUTO_INSTALL=1 npm i\n```\n\nTo 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.:\n\n```sh\n$ npm i edgedriver\n$ EDGEDRIVER_VERSION=105.0.1343.33 npx edgedriver --version\nMicrosoft Edge WebDriver 105.0.1343.33 (4122bb4646b33f33bca5d269490b9caadfc452b2)\n```\n\n# Setting a PROXY URL\n\nUse `HTTPS_PROXY` or `HTTP_PROXY` to set your proxy URL.\n\n# Programmatic Interface\n\nYou can import this package with Node.js and start the driver as part of your script and use it e.g. with [WebdriverIO](https://webdriver.io).\n\n## Exported Methods\n\nThe package exports a `start`, `findEdgePath` and `download` method.\n\n### `start`\n\nStarts an EdgeDriver instance and returns a [`ChildProcess`](https://nodejs.org/api/child_process.html#class-childprocess). If EdgeDriver is not downloaded it will download it for you.\n\n__Params:__ `EdgedriverParameters` - options to pass into EdgeDriver (see below)\n\n__Example:__\n\n```js\nimport { start } from 'edgedriver';\nimport { remote } from 'webdriverio';\nimport waitPort from 'wait-port';\n\n/**\n * first start EdgeDriver\n */\nconst cp = await start({ port: 4444 });\n\n/**\n * wait for EdgeDriver to be up\n */\nawait waitPort({ port: 4444 });\n\n/**\n * then start WebdriverIO session\n */\nconst browser = await remote({ capabilities: { browserName: 'msedge' } });\nawait browser.url('https://webdriver.io');\nconsole.log(await browser.getTitle()); // prints \"WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO\"\n\n/**\n * kill Edgedriver process\n */\ncp.kill();\n```\n\n__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`](https://github.com/jeffbski/wait-on).\n\n### `download`\n\nMethod 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.\n\n__Params:__ `string` - version of Edgedriver to download (optional)\n__Returns:__ `string` - path to Edgedriver binary\n\n### `findEdgePath`\n\nThe `findEdgePath` is a helper method to find the Microsoft Egde binary on given system. If there is a `EDGE_BINARY_PATH` environment set, it will return that value.\n\n__Returns:__ `string` - path to Microsoft Edge binary\n\n## CJS Support\n\nIn case your module uses CJS you can use this package as follows:\n\n```js\nconst { start } = require('edgedriver')\n// see example above\n```\n\n## Custom CDN URL\n\nThis 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:\n\n```sh\n$ npm i edgedriver\n$ EDGEDRIVER_CDNURL=https://msedgedriver.azureedge.net npx edgedriver --version\n```\n\nor create a [`.npmrc`](https://docs.npmjs.com/cli/configuring-npm/npmrc) with the following content:\n\n```toml\nedgedriver_cdnurl=https://msedgedriver.azureedge.net\n```\n\n## Options\n\nThe `start` method offers the following options to be passed on to the actual Edgedriver CLI.\n\n### edgeDriverVersion\n\nThe version of EdgeDriver to start. See [Egdedriver directory list](https://msedgewebdriverstorage.z22.web.core.windows.net/) for all available versions, platforms and architecture.\n\nType: `number`\u003cbr /\u003e\nDefault: `latest`\n\n### port\nThe port on which the driver should run.\n\nExample: `9515`\u003cbr \u003e\nType: `number`\n\n### adbPort\nThe port on which the ADB driver should run.\n\nExample: `9515`\u003cbr \u003e\nType: `number`\n\n### baseUrl\nBase URL path prefix for commands, e.g. `wd/url`.\n\nExample: `/`\n\nType: `string`\n\n### logPath\nWrite server log to file instead of stderr, increases log level to `INFO`\n\nType: `string`\n\n### logLevel\nSet log level. Possible options `ALL`, `DEBUG`, `INFO`, `WARNING`, `SEVERE`, `OFF`.\n\nType: `string`\n\n### verbose\nLog verbosely (equivalent to `--log-level=ALL`)\n\nType: `boolean`\n\n### silent\nLog nothing (equivalent to `--log-level=OFF`)\n\nType: `boolean`\n\n### appendLog\nAppend log file instead of rewriting.\n\nType: `boolean`\n\n### replayable\nLog verbosely and don't truncate long strings so that the log can be replayed (experimental).\n\nType: `boolean`\n\n### readableTimestamp\nAdd readable timestamps to log.\n\nType: `boolean`\n\n### enableChromeLogs\nShow logs from the browser (overrides other logging options).\n\nType: `boolean`\n\n### bidiMapperPath\nCustom bidi mapper path.\n\nType: `string`\n\n### allowedIps\nComma-separated allowlist of remote IP addresses which are allowed to connect to EdgeDriver.\n\nType: `string[]`\u003cbr /\u003e\nDefault: `['']`\n\n### allowedOrigins\nComma-separated allowlist of request origins which are allowed to connect to EdgeDriver. Using `*` to allow any host origin is dangerous!\n\nType: `string[]`\u003cbr /\u003e\nDefault: `['*']`\n\n### cacheDir\nThe path to the root of the cache directory.\n\nType: `string`\u003cbr /\u003e\nDefault: `process.env.EDGEDRIVER_CACHE_DIR || os.tmpdir()`\n\n### customEdgeDriverPath\nDon't download EdgeDriver, instead use a custom path to it, e.g. a cached binary.\n\nType: `string`\u003cbr /\u003e\nDefault: `process.env.EDGEDRIVER_PATH`\n\n---\n\nFor more information on WebdriverIO see the [homepage](https://webdriver.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio-community%2Fnode-edgedriver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdriverio-community%2Fnode-edgedriver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio-community%2Fnode-edgedriver/lists"}