Rozwiązanie – wyszukiwanie elementów na stronie

Prezentacja

Tu w przyszłości mogą pojawić się dodatkowe materiały w postaci prezentacji etc.

TIP: Cały kod testów z poszczególnych lekcji znajdziesz w specjalnie przygotowanym repozytorium:
👉jaktestowac/playwright-elements-locators

TIP: Ta lekcja jest częścią rozwijanego Programu Testy Automatyczne z Playwright 🎭

Przykładowe rozwiązanie

Rozwiązanie

import { test, expect } from "@playwright/test";


test.describe("Find checkbox", () => {
  test.beforeEach(async ({ page }) => {
    await page.goto("/practice/simple-elements.html");
  });


  test("Different methods to locate element", async ({ page }) => {
    // Arrange: 
    // Find checkbox element using different locators


    // Find by data-testid attribute
    const elementLocatorByDataTestId = page.getByTestId("dti-checkbox");


    // Find by role
    const elementLocatorByRole = page.getByRole("checkbox");


    // Find by ID
    const elementLocatorById = page.locator("#id-checkbox");


    // Find by class
    const elementLocatorByClass = page.locator(".my-checkbox");


    // Find by custom attribute
    const elementLocatorByCustomAttribute = page.locator("[ckbx='val1']");


    // Assert:
    // Check if the element found by each locator is visible
    await expect.soft(elementLocatorByDataTestId).toBeVisible();
    await expect.soft(elementLocatorByRole).toBeVisible();
    await expect.soft(elementLocatorById).toBeVisible();
    await expect.soft(elementLocatorByClass).toBeVisible();
    await expect.soft(elementLocatorByCustomAttribute).toBeVisible();
  });
});





TIP: Konstrukcja expect.soft pozwala nam sprawdzić wiele warunków podczas trwania jednego testu.

W przypadku niepowodzenia – test nie zostanie przerwany, a dopiero po zakończeniu testu dostaniemy podsumowanie wyników 😉 Więcej o tej konstrukcji możesz poczytać w oficjalnej dokumentacji – test assertions (oraz expect.soft)

Zasoby i dokumentacja

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *