跳到主要內容

執行與偵錯測試

簡介🔗

Playwright 測試可以透過多種方式執行。我們建議將其連接到您最喜愛的測試執行器,例如 JUnit,因為它可以讓您並行執行測試、執行單一測試等等。

您可以執行單一測試、一組測試或所有測試。測試可以在一個瀏覽器或多個瀏覽器上執行。預設情況下,測試以無頭方式執行,這表示在執行測試時不會開啟瀏覽器視窗,結果將顯示在終端機中。如果您願意,可以使用 launch(new BrowserType.LaunchOptions().setHeadless(false)) 選項以有頭模式執行測試。

JUnit 中,您可以在 @BeforeAll 方法中初始化 PlaywrightBrowser,並在 @AfterAll 中銷毀它們。在下面的範例中,所有三個測試方法都使用相同的 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());
}
}

請參閱此處以取得關於如何並行執行測試等的更多詳細資訊。

請參閱實驗性的 JUnit 整合,以自動初始化 Playwright 物件及更多功能。

以有頭模式執行測試🔗

如果您願意,可以使用 launch(new BrowserType.LaunchOptions().setHeadless(false)) 選項以有頭模式執行測試。

下一步🔗