Перейти к основному содержимому

Написание тестов

Введение

Утверждения 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("http://playwright.dev");

// Ожидаем, что заголовок "содержит" подстроку.
assertThat(page).hasTitle(Pattern.compile("Playwright"));

// создаем локатор
Locator getStarted = page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("Get Started"));

// Ожидаем, что атрибут "строго равен" значению.
assertThat(getStarted).hasAttribute("href", "/docs/intro");

// Кликаем по ссылке "get started".
getStarted.click();

// Ожидаем, что на странице будет заголовок с именем 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 поддерживает множество различных локаторов, таких как role, text, test 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();

Что дальше