使用を開始する - ライブラリ
はじめに
Playwrightは、MSTest、NUnit、またはxUnitの基本クラスとともに使用することも、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のウェブファーストアサーションを活用するために、以下のことができます。これらは、条件が満たされるまで、例えば要素が特定のテキストを持つかタイムアウトに達するまで、自動的にリトライします。
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のパブリッシュターゲットランタイム用のドライバーのみをバンドルします。追加のプラットフォーム用にバンドルしたい場合は、プロジェクトファイルで`all`、`none`、または`linux`、`win`、`osx`を使用することでこの動作をオーバーライドできます。
<PropertyGroup>
<PlaywrightPlatform>all</PlaywrightPlatform>
</PropertyGroup>
または
<PropertyGroup>
<PlaywrightPlatform>osx;linux</PlaywrightPlatform>
</PropertyGroup>