2021-04-06 22:23:55 -07:00
---
id: intro
title: "Getting Started"
---
<!-- TOC -->
- [Release notes ](./release-notes.md )
## Installation
2021-06-04 20:52:35 -07:00
Start with installing `playwright` dotnet tool globally. This only needs to be done once. Learn more about [Playwright CLI ](./cli.md ) tool.
2021-04-06 22:23:55 -07:00
2021-06-02 09:23:06 -07:00
```bash
2021-06-04 20:52:35 -07:00
dotnet tool install --global Microsoft.Playwright.CLI
2021-04-06 22:23:55 -07:00
```
2021-06-04 20:52:35 -07:00
## First project
2021-04-06 22:23:55 -07:00
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
```
2021-06-04 20:52:35 -07:00
Ensure browsers necessary for testing are installed.
```bash
playwright install
```
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-06-04 20:52:35 -07:00
using System;
2021-05-15 10:56:10 -07:00
using System.Threading.Tasks;
2021-06-04 20:52:35 -07:00
using Microsoft.Playwright.NUnit;
using NUnit.Framework;
2021-05-15 10:56:10 -07:00
2021-06-04 20:52:35 -07:00
namespace PlaywrightTests
2021-05-15 10:56:10 -07:00
{
2021-06-04 20:52:35 -07:00
[Parallelizable(ParallelScope.Self)]
public class MyTest : PageTest
2021-05-15 10:56:10 -07:00
{
2021-06-04 20:52:35 -07:00
[Test]
public async Task ShouldAdd()
{
int result = await Page.EvaluateAsync< int > ("() => 7 + 3");
Assert.AreEqual(10, result);
}
[Test]
public async Task ShouldMultiply()
{
int result = await Page.EvaluateAsync< int > ("() => 7 * 3");
Assert.AreEqual(21, result);
}
2021-05-15 10:56:10 -07:00
}
}
2021-04-06 22:23:55 -07:00
```
2021-06-04 20:52:35 -07:00
Now run it.
2021-05-22 07:55:53 -07:00
2021-06-02 09:23:06 -07:00
```bash
2021-05-22 07:55:53 -07:00
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
```
2021-06-04 20:52:35 -07:00
## First test
You can choose to use NUnit test fixtures that come bundled with Playwright. These fixtures support running tests on multiple browser engines in parallel, out of the box. Learn more about [Playwright with NUnit ](./test-runners.md ).
```bash
dotnet new console -n pw_test
cd pw_test
dotnet add package Microsoft.Playwright --prerelease
dotnet add package Microsoft.Playwright.NUnit --prerelease
```
Ensure browsers necessary for testing are installed.
```bash
playwright install
```
Create a PageTests.cs file.
```csharp
using System;
using System.Threading.Tasks;
using Microsoft.Playwright.NUnit;
using NUnit.Framework;
namespace ExampleTest
{
[Parallelizable(ParallelScope.Self)]
public class PageTests : PageTest
{
[Test]
public async Task ShouldMultiply()
{
int result = await Page.EvaluateAsync< int > ("() => 7 * 3");
Assert.AreEqual(21, result);
}
}
}
```
```bash
dotnet build
dotnet test -- NUnit.NumberOfTestWorkers=5
```
2021-04-06 22:23:55 -07:00
## Record scripts
2021-06-04 20:52:35 -07:00
[Command Line Interface ](./cli.md ) can be used to record user interactions and generate C# code.
2021-04-06 22:23:55 -07:00
2021-06-02 09:23:06 -07:00
```bash
2021-06-04 20:52:35 -07:00
playwright codegen
2021-04-06 22:23:55 -07:00
```
## 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.