mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-14 13:45:36 +03:00
docs: merge library and installation docs for nodejs (#7567)
This commit is contained in:
parent
2734066956
commit
1d04114df0
@ -312,7 +312,7 @@ tests:
|
||||
|
||||
By default, Playwright downloads browser binaries when the Playwright NPM package
|
||||
is installed. The NPM packages have a `postinstall` hook that downloads the browser
|
||||
binaries. This behavior can be [customized with environment variables](./installation.md).
|
||||
binaries. This behavior can be [customized with environment variables](./library.md#managing-browser-binaries).
|
||||
|
||||
Caching browsers on CI is **strictly optional**: The `postinstall` hooks should
|
||||
execute and download the browser binaries on every run.
|
||||
@ -333,7 +333,7 @@ This behavior can be fixed with one of the following approaches:
|
||||
behavior in most CI providers.)
|
||||
1. Set `PLAYWRIGHT_BROWSERS_PATH=0` as the environment variable before running
|
||||
`npm install`. This will download the browser binaries in the `node_modules`
|
||||
directory and cache them with the package code. See [installation docs](./installation.md).
|
||||
directory and cache them with the package code. See [managing browser binaries](./library.md#managing-browser-binaries).
|
||||
1. Use `npm ci` (instead of `npm install`) which forces a clean install: by
|
||||
removing the existing `node_modules` directory. See [npm docs](https://docs.npmjs.com/cli/ci.html).
|
||||
1. Cache the browser binaries, with the steps below.
|
||||
|
@ -39,7 +39,7 @@ playwright
|
||||
|
||||
## Install browsers
|
||||
|
||||
Playwright can install supported browsers. This is required to run tests with [Playwright Test](./intro.md).
|
||||
Playwright can install supported browsers.
|
||||
|
||||
```bash js
|
||||
# Running without arguments will install default browsers
|
||||
@ -101,8 +101,6 @@ playwright install --help
|
||||
playwright install --help
|
||||
```
|
||||
|
||||
Learn more about managing browser binaries with [Playwright Library](./installation.md) or [Playwright Test](./test-install.md).
|
||||
|
||||
## Generate code
|
||||
|
||||
```bash js
|
||||
|
@ -35,19 +35,6 @@ du -hs ~/Library/Caches/ms-playwright/*
|
||||
|
||||
You can override default behavior using environment variables. When installing Playwright, ask it to download browsers into a specific location:
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_BROWSERS_PATH="$env:USERPROFILE\pw-browsers"
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
```bash python
|
||||
# Linux/macOS
|
||||
pip install playwright
|
||||
@ -71,19 +58,6 @@ PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers mvn test
|
||||
|
||||
When running Playwright scripts, ask it to search for browsers in a shared location.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers node playwright-script.js
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers
|
||||
node playwright-script.js
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_BROWSERS_PATH="$env:USERPROFILE\pw-browsers"
|
||||
node playwright-script.js
|
||||
```
|
||||
|
||||
```bash python
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers python playwright_script.js
|
||||
@ -109,22 +83,6 @@ mvn test
|
||||
|
||||
Or you can opt into the hermetic install and place binaries in the local folder:
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
# Places binaries to node_modules/playwright
|
||||
PLAYWRIGHT_BROWSERS_PATH=0 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
# Places binaries to node_modules\playwright
|
||||
set PLAYWRIGHT_BROWSERS_PATH=0
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
# Places binaries to node_modules\playwright
|
||||
$env:PLAYWRIGHT_BROWSERS_PATH=0
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
```bash python
|
||||
# Linux/macOS
|
||||
pip install playwright
|
||||
@ -154,19 +112,6 @@ By default, Playwright downloads browsers from Microsoft CDN.
|
||||
Sometimes companies maintain an internal proxy that blocks direct access to the public
|
||||
resources. In this case, Playwright can be configured to download browsers via a proxy server.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
HTTPS_PROXY=https://192.0.2.1 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set HTTPS_PROXY=https://192.0.2.1
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:HTTPS_PROXY="https://192.0.2.1"
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
```bash python
|
||||
# Linux/macOS
|
||||
pip install playwright
|
||||
@ -204,19 +149,6 @@ 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.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_DOWNLOAD_HOST=192.0.2.1 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_DOWNLOAD_HOST=192.0.2.1
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_DOWNLOAD_HOST="192.0.2.1"
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
```bash python
|
||||
# Linux/macOS
|
||||
pip install playwright
|
||||
@ -249,11 +181,6 @@ mvn test
|
||||
It is also possible to use a per-browser download hosts using `PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST`, `PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST` and `PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST` env variables that
|
||||
take precedence over `PLAYWRIGHT_DOWNLOAD_HOST`.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST=203.0.113.3 PLAYWRIGHT_DOWNLOAD_HOST=192.0.2.1 npm i -D playwright
|
||||
```
|
||||
|
||||
```bash python
|
||||
# Linux/macOS
|
||||
pip install playwright
|
||||
@ -272,19 +199,6 @@ browser binaries are managed separately.
|
||||
|
||||
This can be done by setting `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD` variable before installation.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
```bash python
|
||||
# Linux/macOS
|
||||
pip install playwright
|
||||
@ -314,38 +228,6 @@ $env:PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
mvn test
|
||||
```
|
||||
|
||||
## Download single browser binary
|
||||
* langs: js
|
||||
|
||||
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:
|
||||
|
||||
Install a specific package
|
||||
|
||||
```bash
|
||||
npm i -D playwright-webkit
|
||||
```
|
||||
|
||||
Require package
|
||||
|
||||
```js
|
||||
// Notice a proper package name in require
|
||||
const { webkit } = require('playwright-webkit');
|
||||
|
||||
(async () => {
|
||||
const browser = await webkit.launch();
|
||||
// ...
|
||||
})();
|
||||
```
|
||||
|
||||
## Download single browser binary
|
||||
* langs: python
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
id: intro
|
||||
title: "Playwright Test"
|
||||
title: "Getting Started"
|
||||
---
|
||||
|
||||
Playwright can either be used as a part of the Playwright Test, or as a [Playwright Library](./library.md). If you intend to use Playwright for testing, read on.
|
||||
|
@ -8,7 +8,7 @@ Playwright can either be used as a part of the [Playwright Test](./intro.md), or
|
||||
<!-- TOC -->
|
||||
- [Release notes](./release-notes.md)
|
||||
|
||||
## Installation
|
||||
## Usage
|
||||
|
||||
Use npm or Yarn to install Playwright library in your Node.js project. See [system requirements](#system-requirements).
|
||||
|
||||
@ -16,9 +16,7 @@ Use npm or Yarn to install Playwright library in your Node.js project. See [syst
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
This single command downloads the Playwright NPM package and browser binaries for Chromium, Firefox and WebKit. To modify this behavior see [installation parameters](./installation.md).
|
||||
|
||||
## Usage
|
||||
This single command downloads the Playwright NPM package and browser binaries for Chromium, Firefox and WebKit. To modify this behavior see [managing browsers](#managing-browser-binaries).
|
||||
|
||||
Once installed, you can `require` Playwright in a Node.js script, and launch any of the 3 browsers (`chromium`, `firefox` and `webkit`).
|
||||
|
||||
@ -122,3 +120,186 @@ Only Ubuntu 18.04 and Ubuntu 20.04 are officially supported.
|
||||
See also in the [Command Line Interface](./cli.md#install-system-dependencies)
|
||||
which has a command to install all necessary dependencies automatically for Ubuntu
|
||||
LTS releases.
|
||||
|
||||
## Managing browser binaries
|
||||
|
||||
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:
|
||||
|
||||
- `%USERPROFILE%\AppData\Local\ms-playwright` on Windows
|
||||
- `~/Library/Caches/ms-playwright` on MacOS
|
||||
- `~/.cache/ms-playwright` on Linux
|
||||
|
||||
```bash js
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
These browsers will take a few hundred megabytes of disk space when installed:
|
||||
|
||||
```bash
|
||||
du -hs ~/Library/Caches/ms-playwright/*
|
||||
281M chromium-XXXXXX
|
||||
187M firefox-XXXX
|
||||
180M webkit-XXXX
|
||||
```
|
||||
|
||||
You can override default behavior using environment variables. When installing Playwright, ask it to download browsers into a specific location:
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_BROWSERS_PATH="$env:USERPROFILE\pw-browsers"
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
When running Playwright scripts, ask it to search for browsers in a shared location.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers node playwright-script.js
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers
|
||||
node playwright-script.js
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_BROWSERS_PATH="$env:USERPROFILE\pw-browsers"
|
||||
node playwright-script.js
|
||||
```
|
||||
|
||||
Or you can opt into the hermetic install and place binaries in the local folder:
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
# Places binaries to node_modules/playwright
|
||||
PLAYWRIGHT_BROWSERS_PATH=0 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
# Places binaries to node_modules\playwright
|
||||
set PLAYWRIGHT_BROWSERS_PATH=0
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
# Places binaries to node_modules\playwright
|
||||
$env:PLAYWRIGHT_BROWSERS_PATH=0
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
Playwright keeps track of packages that need those browsers and will garbage collect them as you update Playwright to the newer versions.
|
||||
|
||||
:::note
|
||||
Developers can opt-in in this mode via exporting `PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers` in their `.bashrc`.
|
||||
:::
|
||||
|
||||
### Install behind a firewall or a proxy
|
||||
|
||||
By default, Playwright downloads browsers from Microsoft's CDN.
|
||||
|
||||
Sometimes companies maintain an internal proxy that blocks direct access to the public
|
||||
resources. In this case, Playwright can be configured to download browsers via a proxy server.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
HTTPS_PROXY=https://192.0.2.1 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set HTTPS_PROXY=https://192.0.2.1
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:HTTPS_PROXY="https://192.0.2.1"
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
### Download from artifact repository
|
||||
|
||||
By default, Playwright downloads browsers from Microsoft's CDN.
|
||||
|
||||
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.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_DOWNLOAD_HOST=192.0.2.1 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_DOWNLOAD_HOST=192.0.2.1
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_DOWNLOAD_HOST="192.0.2.1"
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
It is also possible to use a per-browser download hosts using `PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST`, `PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST` and `PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST` env variables that
|
||||
take precedence over `PLAYWRIGHT_DOWNLOAD_HOST`.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST=203.0.113.3 PLAYWRIGHT_DOWNLOAD_HOST=192.0.2.1 npm i -D playwright
|
||||
```
|
||||
|
||||
### Skip browser downloads
|
||||
|
||||
In certain cases, it is desired to avoid browser downloads altogether because
|
||||
browser binaries are managed separately.
|
||||
|
||||
This can be done by setting `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD` variable before installation.
|
||||
|
||||
```bash js
|
||||
# Linux/macOS
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i -D playwright
|
||||
|
||||
# Windows with cmd.exe
|
||||
set PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
npm i -D playwright
|
||||
|
||||
# Windows with PowerShell
|
||||
$env:PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
npm i -D playwright
|
||||
```
|
||||
|
||||
### 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:
|
||||
|
||||
Install a specific package
|
||||
|
||||
```bash
|
||||
npm i -D playwright-webkit
|
||||
```
|
||||
|
||||
Require package
|
||||
|
||||
```js
|
||||
// Notice a proper package name in require
|
||||
const { webkit } = require('playwright-webkit');
|
||||
|
||||
(async () => {
|
||||
const browser = await webkit.launch();
|
||||
// ...
|
||||
})();
|
||||
```
|
||||
|
||||
### Stale browser removal
|
||||
|
||||
Playwright keeps track of the clients that use its browsers. When there are no more clients that require particular
|
||||
version of the browser, that version is deleted from the system. That way you can safely use Playwright instances of
|
||||
different versions and at the same time, you don't waste disk space for the browsers that are no longer in use.
|
||||
|
||||
To opt-out from the unused browser removal, you can set the `PLAYWRIGHT_SKIP_BROWSER_GC=1` environment variable.
|
||||
|
@ -3,8 +3,6 @@ id: test-install
|
||||
title: "Advanced: installing browsers"
|
||||
---
|
||||
|
||||
This is a browser installation guide for Playwright Test. If you are using Playwright Library, please refer to [Library Installation](./installation.md) guide.
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
## Installing browser binaries
|
||||
|
Loading…
Reference in New Issue
Block a user