メインコンテンツにスキップ

はじめに - ライブラリ

はじめに

Playwrightは、MSTest、NUnit、xUnit、またはxUnit v3の基本クラスと一緒に使用することも、Playwrightライブラリ(このガイド)として使用することもできます。Playwrightの機能を利用するアプリケーションに取り組んでいる場合、または他のテストランナーと一緒にPlaywrightを使用している場合は、読み進めてください。

使用法

コンソールプロジェクトを作成し、Playwrightの依存関係を追加します。

# Create project
dotnet new console -n PlaywrightDemo
cd PlaywrightDemo

# Add project dependency
dotnet add package Microsoft.Playwright
# Build the project
dotnet build
# Install required browsers - replace netX with actual output folder name, e.g. net8.0.
pwsh bin/Debug/netX/playwright.ps1 install

# If the pwsh command does not work (throws TypeNotFound), make sure to use an up-to-date version of PowerShell.
dotnet tool update --global PowerShell

Program.csを作成し、https://playwright.dokyumento.jp/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.dokyumento.jp/dotnet");
await page.ScreenshotAsync(new()
{
Path = "screenshot.png"
});

さあ、実行しましょう。

dotnet run

デフォルトでは、Playwrightはブラウザをヘッドレスモードで実行します。ブラウザのUIを表示するには、Headlessオプションをfalseに設定します。また、実行を遅くするためにSlowMoを使用することもできます。デバッグツールセクションで詳細を学びましょう。

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

アサーションの使用

独自のテストフレームワークを使用している場合、PlaywrightのWeb優先アサーションを活用するために以下のことができます。これらは、条件が満たされるまで(例:要素に特定のテキストがある、またはタイムアウトに達するまで)自動的に再試行されます。

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

// Change the default 5 seconds timeout if you'd like.
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.dokyumento.jp/dotnet");
await Expect(page.GetByRole(AriaRole.Link, new() { Name = "Get started" })).ToBeVisibleAsync();

異なるプラットフォーム用のドライバーのバンドル

Playwrightはデフォルトでは、.NETパブリッシュターゲットランタイム用のドライバーのみをバンドルします。追加のプラットフォーム用にバンドルしたい場合は、プロジェクトファイルでallnone、またはlinuxwinosxのいずれかを使用することでこの動作をオーバーライドできます。

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

or

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