Powrót do: Playwright Elements – Kluczowe koncepcje automatyzacji testów
Teraz Ty – wyszukiwanie elementów na stronie
Prezentacja
Treść zadania
Na stronie http://localhost:3000/practice/simple-elements.html (jeśli korzystasz z aplikacji GAD lokalnie) znajdź pole checkbox na 5 różnych sposobów – czyli za pomocą:
ID
klasy
roli
data-testid
unikalnego atrybutu ckbx (sprawdź jego wartość!)
Na końcu zweryfikuj czy faktycznie dla każdego przypadku element został znaleziony
Podpowiedź - szczegółowe kroki zadania
Przygotuj nowy test w Playwright
Przejdź na testowaną stronę
W teście znajdź pole checkbox na 5 różnych sposobów – czyli za pomocą:
ID
klasy
roli
data-testid
atrybutu ckbx , który ma wartość val1
Dla każdego powyższego sposobu sprawdź czy znaleziony element jest widoczny na stronie
Podpowiedź - z jakich metod mam skorzystać?
W tym zadaniu wykorzystaj oficjalną dokumentację Playwright Dzięki temu oswoisz się z szukaniem wartościowej wiedzy w dokumentacji – playwright.dev .
Podpowiedź - gdzie znajdę szczegółowe informacje?
Dokumentacja o metodach do wyszukiwania elementów:
locators
TIP: To zadanie możesz realizować w
osobnym pliku .spec.ts istniejącym projekcie, jaki przygotowaliśmy w tym kursie
Powodzenia!
Podpowiedzi
Podpowiedź 1 - nazwa pliku
Plik z testami możesz nazwać jako:
ex1-input.spec.ts
Podpowiedź 2 - otworzenie strony do testów
Aby przejść na testowaną stronę możesz wykorzystać konstrukcję:
test. beforeEach ( async ( { page } ) => {
await page. goto ( "/practice/simple-elements.html" ) ;
test.beforeEach(async ({ page }) => {
await page.goto("/practice/simple-elements.html");
});
test.beforeEach(async ({ page }) => {
await page.goto("/practice/simple-elements.html");
});
Podpowiedź 3 - jeden czy wiele testów?
Są 2 podejścia
Zadanie możesz zrealizować w formie 5 osobnych testów.
W każdym z testów wyszukasz elementy checkbox na jeden z zadanych sposobów, a następnie w każdym teście sprawdzisz czy element jest widoczny na stronie.
Drugie podejście to jeden test.
W teście tym wyszukasz element checkbox na 5 sposobów i dla każdego sposobu sprawdzisz czy jest widoczny. Ten sposób będziemy tutaj preferować
Podpowiedź 4 - sprawdzenie widoczności elementu
Aby sprawdzić widoczność, użyj poniższej konstrukcji:
await expect ( elementLocator ) . toBeVisible ( ) ;
await expect(elementLocator).toBeVisible();
await expect(elementLocator).toBeVisible();
Podpowiedź 5 - sprawdzenie widoczności wielu elementów w jednym teście
Aby sprawdzić widoczność wielu elementów w jednym teście, użyj poniższej konstrukcji:
await expect. soft ( elementLocatorById ) . toBeVisible ( ) ;
await expect. soft ( elementLocatorByClass ) . toBeVisible ( ) ;
await expect.soft(elementLocatorById).toBeVisible();
await expect.soft(elementLocatorByClass).toBeVisible();
await expect.soft(elementLocatorById).toBeVisible();
await expect.soft(elementLocatorByClass).toBeVisible();
Podpowiedź 6 - wyszukiwanie elementów po atrybucie
Selektor, który pozwala na wyszukanie elementu po atrybucie ma postać:
const resultSelector = "[nazwa_atrybutu='wartosc_atrybutu']" ;
const resultSelector = "[nazwa_atrybutu='wartosc_atrybutu']";
const resultSelector = "[nazwa_atrybutu='wartosc_atrybutu']";
Czyli, przykładowo aby znaleźć element po atrybucie data-testid oraz wartości atrybutu dti-results , konstrukcja przyjmie postać:
const resultSelector = "[data-testid='dti-results']" ;
const resultSelector = "[data-testid='dti-results']";
const resultSelector = "[data-testid='dti-results']";