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

テストの実行とデバッグ

はじめに

Playwrightのテストは様々な方法で実行できます。お気に入りのテストランナー(例: JUnit)に接続することをお勧めします。これにより、テストを並行して実行したり、単一のテストを実行したりできます。

単一のテスト、一連のテスト、またはすべてのテストを実行できます。テストは1つのブラウザまたは複数のブラウザで実行できます。デフォルトでは、テストはヘッドレスモードで実行されます。これは、テストの実行中にブラウザウィンドウが開かず、結果がターミナルに表示されることを意味します。必要に応じて、`launch(new BrowserType.LaunchOptions().setHeadless(false))` オプションを使用して、ヘッデッドモードでテストを実行できます。

JUnitでは、PlaywrightBrowser@BeforeAllメソッドで初期化し、@AfterAllで破棄できます。以下の例では、3つのテストメソッドすべてが同じBrowserを使用しています。各テストは独自のBrowserContextPageを使用します。

package org.example;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;
import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class TestExample {
// Shared between all tests in this class.
static Playwright playwright;
static Browser browser;

// New instance for each test method.
BrowserContext context;
Page page;

@BeforeAll
static void launchBrowser() {
playwright = Playwright.create();
browser = playwright.chromium().launch();
}

@AfterAll
static void closeBrowser() {
playwright.close();
}

@BeforeEach
void createContextAndPage() {
context = browser.newContext();
page = context.newPage();
}

@AfterEach
void closeContext() {
context.close();
}

@Test
void shouldClickButton() {
page.navigate("data:text/html,<script>var result;</script><button onclick='result=\"Clicked\"'>Go</button>");
page.locator("button").click();
assertEquals("Clicked", page.evaluate("result"));
}

@Test
void shouldCheckTheBox() {
page.setContent("<input id='checkbox' type='checkbox'></input>");
page.locator("input").check();
assertTrue((Boolean) page.evaluate("() => window['checkbox'].checked"));
}

@Test
void shouldSearchWiki() {
page.navigate("https://www.wikipedia.org/");
page.locator("input[name=\"search\"]").click();
page.locator("input[name=\"search\"]").fill("playwright");
page.locator("input[name=\"search\"]").press("Enter");
assertEquals("https://en.wikipedia.org/wiki/Playwright", page.url());
}
}

テストを並行して実行する方法などの詳細については、こちらを参照してください。

Playwrightオブジェクトなどを自動的に初期化する実験的なJUnit連携を参照してください。

ヘッデッドモードでテストを実行

必要に応じて、`launch(new BrowserType.LaunchOptions().setHeadless(false))` オプションを使用して、ヘッデッドモードでテストを実行できます。

次のステップ