2021-04-06 22:23:55 -07:00
---
id: intro
title: "Getting Started"
---
<!-- TOC -->
- [Release notes ](./release-notes.md )
## Installation
2021-05-15 10:56:10 -07:00
Install Microsoft.Playwright package from NuGet in Visual Studio or from the CLI in your project root directory:
2021-04-06 22:23:55 -07:00
2021-06-02 09:23:06 -07:00
```bash
2021-05-15 10:56:10 -07:00
dotnet add package Microsoft.Playwright
2021-04-06 22:23:55 -07:00
```
## Usage
```csharp
2021-05-15 10:56:10 -07:00
using Microsoft.Playwright;
using System.Threading.Tasks;
2021-05-22 07:55:53 -07:00
class Program
2021-05-15 10:56:10 -07:00
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
// Create pages, interact with UI elements, assert values
}
}
2021-04-06 22:23:55 -07:00
```
## First script
2021-05-22 07:55:53 -07:00
Create a console project and add the Playwright dependency.
2021-06-02 09:23:06 -07:00
```bash
2021-05-22 07:55:53 -07:00
dotnet new console -n pw_demo
cd pw_demo
dotnet add package Microsoft.Playwright --prerelease
```
Create a Program.cs that will navigate to `https://playwright.dev/dotnet` and take a screenshot in Chromium.
2021-04-06 22:23:55 -07:00
```csharp
2021-05-15 10:56:10 -07:00
using Microsoft.Playwright;
using System.Threading.Tasks;
2021-05-22 07:55:53 -07:00
class Program
2021-05-15 10:56:10 -07:00
{
public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
2021-05-22 07:55:53 -07:00
await page.GotoAsync("https://playwright.dev/dotnet");
2021-05-19 17:19:25 -07:00
await page.ScreenshotAsync(new PageScreenshotOptions { Path = "screenshot.png" });
2021-05-15 10:56:10 -07:00
}
}
2021-04-06 22:23:55 -07:00
```
2021-05-22 07:55:53 -07:00
Now build it and run it.
2021-06-02 09:23:06 -07:00
```bash
2021-05-22 07:55:53 -07:00
dotnet build
dotnet run
```
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-04-06 22:23:55 -07:00
```csharp
2021-05-19 17:19:25 -07:00
await playwright.Firefox.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false, SlowMo = 50 });
2021-04-06 22:23:55 -07:00
```
## Record scripts
Command Line Interface [CLI ](./cli.md ) can be used to record user interactions and generate C# code.
2021-06-02 09:23:06 -07:00
```bash
2021-04-06 22:23:55 -07:00
# FIXME:
```
## System requirements
The browser binaries for Chromium, 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.