2020-04-24 22:20:04 +03:00
# Installation
<!-- GEN:toc -->
- [System requirements ](#system-requirements )
- [Managing browser binaries ](#managing-browser-binaries )
2020-04-30 04:59:20 +03:00
- [Download from artifact repository ](#download-from-artifact-repository )
- [Skip browser downloads ](#skip-browser-downloads )
2020-04-24 22:20:04 +03:00
- [Download single browser binary ](#download-single-browser-binary )
<!-- GEN:stop -->
2020-04-30 04:59:20 +03:00
< br >
2020-04-24 22:20:04 +03:00
## System requirements
Playwright requires Node.js version 10.15 or above. The browser binaries for Chromium,
Firefox and WebKit work across the 3 platforms (Windows, macOS, Linux):
* **Windows**: Works with Windows and Windows Subsystem for Linux (WSL).
* **macOS**: Requires 10.14 or above.
* **Linux**: Depending on your Linux distribution, you might need to install additional
dependencies to run the browsers.
* For Ubuntu 18.04, the additional dependencies are defined in [our Docker image ](docker/Dockerfile.bionic ),
which is based on Ubuntu.
2020-04-30 04:59:20 +03:00
< br >
2020-04-24 22:20:04 +03:00
## Managing browser binaries
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
Each version of Playwright needs specific versions of browser binaries to operate. By default Playwright downloads Chromium, WebKit and Firefox browsers into the OS-specific cache folders:
2020-04-22 02:38:40 +03:00
2020-05-01 03:41:56 +03:00
- `%USERPROFILE%\AppData\Local\ms-playwright` on Windows
2020-04-30 04:59:20 +03:00
- `~/Library/Caches/ms-playwright` on MacOS
- `~/.cache/playwright/ms-playwright` on Linux
2020-04-22 03:13:14 +03:00
```sh
npm i playwright
```
2020-04-30 04:59:20 +03:00
These browsers will take few hundreds of megabytes of the disk space when installed:
2020-04-22 03:13:14 +03:00
```sh
2020-04-30 04:59:20 +03:00
du -hs ./Library/Caches/ms-playwright/*
281M chromium-XXXXXX
187M firefox-XXXX
180M webkit-XXXX
2020-04-22 03:13:14 +03:00
```
2020-04-30 04:59:20 +03:00
You can override default behavior using environment variables. When installing Playwright, ask it to download browsers into a specific location:
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
```sh
$ PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npm i playwright
```
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
When running Playwright scripts, ask it to search for browsers in a shared location:
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
```sh
$ PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers node playwright-script.js
```
Or you can opt into the hermetic install and place binaries under the `node_modules/` folder:
2020-04-22 02:38:40 +03:00
```sh
2020-04-30 04:59:20 +03:00
$ PLAYWRIGHT_BROWSERS_PATH=0 node playwright-script.js
2020-04-22 02:38:40 +03:00
```
2020-04-30 04:59:20 +03:00
Playwright keeps track of packages that need those browsers and will garbage collect them as you update Playwright to the newer versions.
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
< br >
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
> **NOTE** Developers can opt-in in this mode via exporting `PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers` in their `.bashrc`.
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
< br >
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
## Download from artifact repository
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
By default, Playwright downloads browsers from Microsoft and Google public CDNs.
Sometimes companies maintain an internal artifact repository to host browser
binaries. In this case, Playwright can be configured to download from a custom
location using the `PLAYWRIGHT_DOWNLOAD_HOST` env variable.
2020-04-22 02:38:40 +03:00
```sh
2020-04-30 04:59:20 +03:00
$ PLAYWRIGHT_DOWNLOAD_HOST=192.168.1.78 npm i playwright
2020-04-22 02:38:40 +03:00
```
2020-04-30 04:59:20 +03:00
< br >
2020-04-22 02:38:40 +03:00
2020-04-30 04:59:20 +03:00
## Skip browser downloads
2020-04-22 02:38:40 +03:00
2020-04-24 22:20:04 +03:00
In certain cases, it is desired to avoid browser downloads altogether because
2020-04-22 02:38:40 +03:00
browser binaries are managed separately.
This can be done by setting `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD` variable before installation.
```sh
$ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i playwright
```
2020-04-30 04:59:20 +03:00
< br >
2020-04-22 02:38:40 +03:00
## Download single browser binary
Playwright ships three packages that bundle only a single browser:
- [`playwright-chromium` ](https://www.npmjs.com/package/playwright-chromium )
- [`playwright-webkit` ](https://www.npmjs.com/package/playwright-webkit )
- [`playwright-firefox` ](https://www.npmjs.com/package/playwright-firefox )
> **NOTE** All configuration environment variables also apply to these packages.
Using these packages is as easy as using a regular Playwright:
2020-04-30 04:59:20 +03:00
Install a specific package
2020-04-22 02:38:40 +03:00
```sh
$ npm i playwright-webkit
```
2020-04-30 04:59:20 +03:00
Require package
2020-04-22 02:38:40 +03:00
```js
// Notice a proper package name in require
2020-04-24 22:20:04 +03:00
const { webkit } = require('playwright-webkit');
2020-04-22 02:38:40 +03:00
(async () => {
const browser = await webkit.launch();
// ....
})();
```