2021-01-11 09:34:49 -08:00
---
2021-01-15 17:59:19 -08:00
id: intro
2021-01-11 09:34:49 -08:00
title: "Getting Started"
---
<!-- TOC -->
2021-02-09 21:44:16 -08:00
- [Release notes ](./release-notes.md )
2021-01-11 09:34:49 -08:00
## Installation
Use pip to install Playwright in your Python project. See [system requirements ](#system-requirements ).
```sh
2021-05-11 20:47:48 +02:00
pip install playwright
playwright install
2021-01-11 09:34:49 -08:00
```
These commands download the Playwright package and install browser binaries for Chromium, Firefox and WebKit. To modify this behavior see [installation parameters ](./installation.md ).
## Usage
Once installed, you can `import` Playwright in a Python script, and launch any of the 3 browsers (`chromium` , `firefox` and `webkit` ).
2021-01-11 17:04:24 -08:00
```py
from playwright.sync_api import sync_playwright
2021-01-11 09:34:49 -08:00
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
2021-01-12 12:14:27 -08:00
page.goto("http://playwright.dev")
2021-01-11 17:04:24 -08:00
print(page.title())
2021-01-11 09:34:49 -08:00
browser.close()
```
2021-01-12 12:14:27 -08:00
Playwright supports two variations of the API: synchronous and asynchronous. If your modern project uses [asyncio ](https://docs.python.org/3/library/asyncio.html ), you should use async API:
2021-01-11 09:34:49 -08:00
2021-01-13 21:03:35 -08:00
```py
2021-01-11 17:04:24 -08:00
import asyncio
from playwright.async_api import async_playwright
2021-01-11 09:34:49 -08:00
2021-01-11 17:04:24 -08:00
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
2021-01-12 12:14:27 -08:00
await page.goto("http://playwright.dev")
2021-01-11 17:04:24 -08:00
print(await page.title())
await browser.close()
asyncio.run(main())
2021-01-11 09:34:49 -08:00
```
## First script
In our first script, we will navigate to `whatsmyuseragent.org` and take a screenshot in WebKit.
2021-01-13 21:03:35 -08:00
```py
2021-01-11 17:04:24 -08:00
from playwright.sync_api import sync_playwright
2021-01-11 09:34:49 -08:00
with sync_playwright() as p:
browser = p.webkit.launch()
2021-03-21 09:51:31 -07:00
page = browser.new_page()
2021-01-11 09:34:49 -08:00
page.goto("http://whatsmyuseragent.org/")
page.screenshot(path="example.png")
browser.close()
```
2021-01-20 16:06:26 -08:00
By default, Playwright runs the browsers in headless mode. To see the browser UI, pass the `headless=False` flag while launching the browser. You can also use [`option: slowMo` ] to slow down execution. Learn more in the debugging tools [section ](./debug.md ).
2021-01-11 09:34:49 -08:00
2021-01-13 21:03:35 -08:00
```py
2021-02-26 06:01:10 +01:00
firefox.launch(headless=False, slow_mo=50)
2021-01-11 09:34:49 -08:00
```
## Record scripts
Command Line Interface [CLI ](./cli.md ) can be used to record user interactions and generate Python code.
```sh
2021-05-11 20:47:48 +02:00
playwright codegen wikipedia.org
2021-01-11 09:34:49 -08:00
```
## System requirements
2021-04-30 16:44:30 +02:00
Playwright requires Python 3.7 or above. The browser binaries for Chromium,
2021-01-11 09:34:49 -08:00
Firefox and WebKit work across the 3 platforms (Windows, macOS, Linux):
2021-04-30 16:44:30 +02:00
### Windows
Works with Windows and Windows Subsystem for Linux (WSL).
### macOS
Requires 10.14 (Mojave) or above.
### Linux
Depending on your Linux distribution, you might need to install additional
dependencies to run the browsers.
:::note
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.