テストの実行とデバッグ
はじめに
Playwright のテストはさまざまな方法で実行できます。並列でテストを実行したり、単一のテストを実行したりする機能が提供されるため、JUnit など、お好みのテストランナーに接続することをお勧めします。
単一のテスト、一連のテスト、またはすべてのテストを実行できます。テストは、1つのブラウザまたは複数のブラウザで実行できます。デフォルトでは、テストはヘッドレスモードで実行されます。これは、テストの実行中にブラウザウィンドウが開かれず、結果がターミナルに表示されることを意味します。必要に応じて、`launch(new BrowserType.LaunchOptions().setHeadless(false))` オプションを使用して、ヘッド付きモードでテストを実行できます。
JUnit では、Playwright と Browser を @BeforeAll メソッドで初期化し、@AfterAll で破棄できます。以下の例では、3 つのテストメソッドすべてが同じ Browser を使用しています。各テストは、独自の BrowserContext と Page を使用します。
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))` オプションを使用して、ヘッド付きモードでテストを実行できます。