テストの作成
はじめに
Playwrightのアサーションは、動的なウェブに特化して作成されています。必要な条件が満たされるまで、チェックは自動的に再試行されます。Playwrightには自動待機機能が組み込まれており、要素に対してアクションを実行する前に、その要素が操作可能になるまで待機します。Playwrightはアサーションを記述するためのassertThatオーバーロードを提供しています。
ウェブファーストのアサーション、ロケーター、セレクターを使用してテストを記述する方法については、以下のテスト例をご覧ください。
package org.example;
import java.util.regex.Pattern;
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.AriaRole;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
public class App {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().launch();
Page page = browser.newPage();
page.navigate("https://playwright.dokyumento.jp");
// Expect a title "to contain" a substring.
assertThat(page).hasTitle(Pattern.compile("Playwright"));
// create a locator
Locator getStarted = page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("Get Started"));
// Expect an attribute "to be strictly equal" to the value.
assertThat(getStarted).hasAttribute("href", "/docs/intro");
// Click the get started link.
getStarted.click();
// Expects page to have a heading with the name of Installation.
assertThat(page.getByRole(AriaRole.HEADING,
new Page.GetByRoleOptions().setName("Installation"))).isVisible();
}
}
}
アサーション
Playwrightは、期待される条件が満たされるまで待機するassertThat
オーバーロードを提供しています。
import java.util.regex.Pattern;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
assertThat(page).hasTitle(Pattern.compile("Playwright"));
ロケーター
ロケーターは、Playwrightの自動待機と再試行の中心となるものです。ロケーターは、ページ上の要素をいつでも見つける方法を表し、.click
、.fill
などの要素に対するアクションを実行するために使用されます。カスタムロケーターはPage.locator()メソッドで作成できます。
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
Locator getStarted = page.locator("text=Get Started");
assertThat(getStarted).hasAttribute("href", "/docs/intro");
getStarted.click();
Playwrightは、ロール、テキスト、テストIDなど、さまざまなロケーターをサポートしています。利用可能なロケーターとそれらの選択方法については、この詳細ガイドで詳しく学ぶことができます。
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
assertThat(page.locator("text=Installation")).isVisible();
テストの分離
Playwrightには、インメモリで分離されたブラウザプロファイルであるBrowserContextの概念があります。各テストで新しいBrowserContextを作成して、テスト同士が干渉しないようにすることをお勧めします。
Browser browser = playwright.chromium().launch();
BrowserContext context = browser.newContext();
Page page = context.newPage();