Начало работы - Библиотека
Введение
Playwright может использоваться либо с базовыми классами MSTest, NUnit или xUnit, либо как библиотека 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>