Перейти к основному содержимому

Начало работы - Библиотека

Введение​

Playwright можно использовать либо с базовыми классами MSTest, NUnit, xUnit или xUnit v3, либо как библиотеку Playwright (данное руководство). Если вы работаете над приложением, которое использует возможности Playwright, или применяете Playwright с другим тестовым раннером, читайте далее.

Использование​

Создайте консольный проект и добавьте зависимость Playwright.

# Создать проект
dotnet new console -n PlaywrightDemo
cd PlaywrightDemo

# Добавить зависимость проекта
dotnet add package Microsoft.Playwright
# Собрать проект
dotnet build
# Установить необходимые браузеры - замените netX на фактическое имя выходной папки, например, net8.0.
pwsh bin/Debug/netX/playwright.ps1 install

# Если команда pwsh не работает (выдает TypeNotFound), убедитесь, что используете актуальную версию PowerShell.
dotnet tool update --global PowerShell

Создайте Program.cs, который будет переходить на https://playwright.dev/dotnet и делать скриншот в Chromium.

using Microsoft.Playwright;

using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://playwright.dev/dotnet");
await page.ScreenshotAsync(new()
{
Path = "screenshot.png"
});

Теперь запустите его.

dotnet run

По умолчанию Playwright запускает браузеры в безголовом режиме. Чтобы увидеть интерфейс браузера, установите опцию Headless в false. Вы также можете использовать SlowMo для замедления выполнения. Узнайте больше в разделе инструментов отладки section.

await using var browser = await playwright.Firefox.LaunchAsync(new()
{
Headless = false,
SlowMo = 50,
});

Использование утверждений​

Вы можете сделать следующее, чтобы использовать веб-первичные утверждения Playwright, когда вы используете свой собственный тестовый фреймворк. Они будут автоматически повторяться, пока условие не будет выполнено, например, элемент имеет определенный текст или истекло время ожидания:

using Microsoft.Playwright;
using static Microsoft.Playwright.Assertions;

// Измените стандартное время ожидания в 5 секунд, если хотите.
SetDefaultExpectTimeout(10_000);

using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://playwright.dev/dotnet");
await Expect(page.GetByRole(AriaRole.Link, new() { Name = "Get started" })).ToBeVisibleAsync();

Пакетирование драйверов для разных платформ​

По умолчанию Playwright пакует только драйвер для целевой среды выполнения публикации .NET. Если вы хотите упаковать для дополнительных платформ, вы можете переопределить это поведение, используя all, none или linux, win, osx в вашем файле проекта.

<PropertyGroup>
<PlaywrightPlatform>all</PlaywrightPlatform>
</PropertyGroup>

или:

<PropertyGroup>
<PlaywrightPlatform>osx;linux</PlaywrightPlatform>
</PropertyGroup>