Trwa sprzedaż biletów na konferencję Testing Ground Conference 2026, której jesteśmy głównym organizatorem. Bilety dostępne na: https://testingground.pl/
Lokalizowanie elementów. Selektory w Selenium wprowadzenie

Test automatyczny w Selenium jest tak dobry, jak sposób, w jaki odnajduje elementy na stronie. Jeśli selektor jest kruchy, cały scenariusz sypie się przy pierwszej drobnej zmianie w interfejsie. Lokalizowanie elementów to fundament każdego stabilnego testu UI w Selenium, a dobór selektora przesądza o tym, czy testy będą Cię wspierać, czy frustrować. Dlatego warto poznać wszystkie podstawowe typy selektorów i wiedzieć, kiedy sięgać po który z nich.

Ten przewodnik jest dla inżynierów QA, testerów automatyzujących oraz osób, które zaczynają pracę z Selenium. Wyjaśnimy, czym są lokatory, dlaczego mają tak duże znaczenie, omówimy wszystkie główne typy selektorów wraz z praktycznymi wskazówkami, a na końcu pokażemy najczęstsze błędy i zasady budowania stabilnych lokatorów.

W skrócie:

  • Lokatory to sposób, w jaki Selenium odnajduje elementy na stronie.
  • Selenium oferuje osiem podstawowych strategii lokalizowania elementów.
  • Najstabilniejszy selektor to unikalne, dedykowane ID elementu.
  • CSS i XPath dają największą elastyczność przy złożonych strukturach.
  • Stabilne lokatory to mniej kruchych testów i niższy koszt utrzymania.

Czym są lokatory w Selenium

Lokator to instrukcja, która mówi Selenium, jak znaleźć konkretny element na stronie, na przykład przycisk, pole tekstowe czy link. Bez poprawnego lokatora narzędzie nie wie, w co kliknąć ani gdzie wpisać dane, więc nie wykona żadnej akcji.

Każda interakcja w teście UI zaczyna się od odnalezienia elementu, dlatego lokatory są dosłownie pierwszym krokiem każdego scenariusza. W Selenium służy do tego metoda findElement dla pojedynczego elementu oraz findElements dla listy elementów. Obie przyjmują strategię lokalizowania opisaną przez klasę By, na przykład By.id czy By.cssSelector. To właśnie wybór tej strategii decyduje o jakości całego testu.

Dlaczego lokalizowanie elementów ma znaczenie

Wybór selektora to nie szczegół techniczny, lecz decyzja, która wpływa na stabilność i koszt utrzymania całego zestawu testów. Dobrze dobrany lokator działa latami mimo zmian w aplikacji, źle dobrany psuje się przy najmniejszej modyfikacji layoutu.

Kruche selektory to główna przyczyna tak zwanych flaky tests, czyli testów, które raz przechodzą, a raz nie, bez realnej zmiany w aplikacji. Taki szum odbiera zaufanie do automatyzacji i sprawia, że zespół zaczyna ignorować czerwone wyniki. Zanim w ogóle zdecydujesz, co automatyzować, warto rozważyć bilans korzyści opisany w artykule o zaletach i wadach automatyzacji testów oraz świadomie rozdzielić zakres pracy ręcznej i skryptów, o czym piszemy w materiale o testowaniu manualnym i automatycznym.

 

Selektory w Selenium rodzaje

Główne typy selektorów w Selenium

Selenium udostępnia osiem podstawowych strategii lokalizowania elementów. Każda ma swoje mocne strony i typowe zastosowania. Poniżej omawiamy je kolejno wraz z praktyczną wskazówką do każdej.

ID

Lokalizowanie po atrybucie id to najszybsza i najbardziej niezawodna strategia. Identyfikatory powinny być unikalne w obrębie strony, więc trafiasz dokładnie w jeden element.

Praktyczna wskazówka: jeśli element ma stabilne, unikalne ID, zawsze wybieraj właśnie je jako pierwszy wybór. Uważaj jednak na identyfikatory generowane dynamicznie, na przykład z losowymi sufiksami, bo te nie nadają się do testów.

Name

Strategia name wykorzystuje atrybut name elementu, często spotykany w polach formularzy. Bywa wygodna przy starszych aplikacjach, w których pola mają czytelne nazwy.

Praktyczna wskazówka: sprawdź, czy nazwa jest unikalna, bo wiele elementów na stronie może współdzielić ten sam atrybut name, co prowadzi do trafienia w niewłaściwy element.

Class name

Lokalizowanie po nazwie klasy CSS bywa kuszące, ale klasy zwykle służą stylowaniu, a nie identyfikacji. To czyni je ryzykownym wyborem przy zmianach wyglądu.

Praktyczna wskazówka: używaj nazwy klasy tylko wtedy, gdy jest naprawdę unikalna i semantyczna. Pamiętaj, że ta strategia przyjmuje pojedynczą klasę, a nie listę klas oddzielonych spacją.

Tag name

Strategia tag name odnajduje elementy po nazwie znacznika HTML, na przykład input, a czy button. Sama w sobie jest mało precyzyjna, bo takich elementów bywa na stronie wiele.

Praktyczna wskazówka: wykorzystuj ją głównie z metodą findElements do pobierania całych grup elementów, na przykład wszystkich wierszy tabeli czy pozycji listy.

Link text

Link text pozwala odnaleźć link po jego pełnym, widocznym tekście. To czytelna i intuicyjna strategia, idealna do nawigacji po stronie.

Praktyczna wskazówka: pamiętaj, że dopasowanie jest dokładne i wrażliwe na wielkość liter oraz spacje. Każda zmiana treści linku, na przykład po tłumaczeniu, zepsuje taki lokator.

Partial link text

Partial link text działa jak link text, ale dopasowuje fragment tekstu zamiast całości. Przydaje się, gdy część etykiety jest dynamiczna lub bardzo długa.

Praktyczna wskazówka: wybieraj fragment na tyle charakterystyczny, by trafić w jeden link. Zbyt ogólny fragment dopasuje wiele elementów i utrudni utrzymanie testu.

CSS selector

Selektor CSS to jedna z najpotężniejszych i najszybszych strategii. Pozwala precyzyjnie wskazać element po kombinacji atrybutów, klas, hierarchii i relacji w drzewie DOM.

Praktyczna wskazówka: CSS selector jest zwykle szybszy od XPath i czytelniejszy, dlatego dla większości złożonych przypadków warto sięgać właśnie po niego. Buduj selektory na stabilnych atrybutach, najlepiej dedykowanych do testów, takich jak data testid.

XPath

XPath to najbardziej elastyczna strategia, która pozwala poruszać się po drzewie DOM w dowolnym kierunku, także w górę do elementów nadrzędnych. Umożliwia też wyszukiwanie po tekście elementu.

Praktyczna wskazówka: unikaj długich, bezwzględnych ścieżek typu html body div div, bo są wyjątkowo kruche. Stawiaj na krótkie, względne wyrażenia oparte na stabilnych atrybutach.

Który selektor wybrać i kiedy

Nie ma jednego idealnego selektora do wszystkiego, ale jest sensowna kolejność wyboru. Dobrym nawykiem jest schodzenie od najbardziej stabilnych strategii do tych bardziej złożonych.

  1. ID, jeśli element ma unikalny i stabilny identyfikator.
  2. Name, gdy ID nie ma, a nazwa jest unikalna.
  3. CSS selector, dla precyzyjnych i wydajnych dopasowań w złożonych strukturach.
  4. XPath, gdy potrzebujesz nawigacji po drzewie albo wyszukiwania po tekście.
  5. Link text i partial link text, do linków o stabilnej treści.
  6. Tag name i class name, głównie do pobierania grup elementów.

Najlepszym możliwym rozwiązaniem jest współpraca z deweloperami i dodanie dedykowanych atrybutów testowych, takich jak data testid, do kluczowych elementów. Wtedy lokatory są niezależne od wyglądu i treści, więc testy stają się odporne na większość zmian.

Najczęstsze błędy przy lokalizowaniu elementów

Większość niestabilnych testów UI bierze się z kilku powtarzalnych pomyłek. Oto te, które warto wyeliminować od samego początku.

  • Bezwzględne ścieżki XPath. Długie ścieżki od korzenia dokumentu psują się przy najmniejszej zmianie struktury.
  • Opieranie się na klasach CSS od stylowania. Zmiana wyglądu pociąga za sobą awarię testu.
  • Używanie dynamicznych identyfikatorów. ID z losowymi fragmentami zmienia się przy każdym uruchomieniu.
  • Selektory zależne od pozycji. Wskazywanie trzeciego elementu z listy zawodzi po dodaniu nowego wiersza.
  • Brak obsługi oczekiwania. Szukanie elementu, zanim się pojawi, kończy się błędem mimo poprawnego lokatora.

Większość awarii w testach UI to nie błędy aplikacji, lecz efekt kruchych selektorów i braku świadomego oczekiwania na elementy. Świadomość tych pułapek to pierwszy krok do trwałej automatyzacji.

Dobre praktyki dla stabilnych lokatorów

Stabilny lokator to taki, który przetrwa kosmetyczne zmiany w aplikacji i nadal wskaże właściwy element. Oto zasady, które warto wdrożyć w zespole.

  • Preferuj atrybuty dedykowane testom. Ustal z deweloperami konwencję, na przykład data testid, dla kluczowych elementów.
  • Stawiaj na względne, krótkie wyrażenia. Im prostszy selektor, tym łatwiejszy w utrzymaniu.
  • Stosuj wzorzec Page Object. Trzymaj lokatory w jednym miejscu, by zmiana wymagała poprawki tylko w jednym pliku.
  • Używaj jawnych oczekiwań. Czekaj na widoczność lub klikalność elementu, zanim wykonasz akcję.
  • Nadawaj czytelne nazwy. Selektor i jego zmienna powinny od razu mówić, jaki element opisują.

Te zasady warto opisać i utrwalić w zespołowym planie testów, aby cały zespół trzymał wspólny standard. Solidne fundamenty pracy testera, niezależnie od automatyzacji, porządkują też szkolenia z testowania manualnego.

Jak rozwijać kompetencje w automatyzacji z Selenium

Selektory to dopiero początek drogi w automatyzacji testów UI. Kolejne kroki to wzorce projektowe, obsługa oczekiwań, integracja z pipeline oraz świadome rozszerzanie testów o warstwę API.

Jeśli chcesz rozwinąć praktyczne umiejętności, dobrym punktem startu są szkolenia z automatyzacji testów, a konkretnie kurs automatyzacji testów w Selenium. Skuteczna automatyzacja wymaga też solidnych podstaw programowania, bez nich nawet najlepsze selektory nie zbudują dojrzałego frameworka. Warto więc uzupełnić wiedzę o programowanie Java dla testerów lub programowanie Python dla testerów, zależnie od stosu technologicznego. Fundament procesowy i wspólny język w zespole daje natomiast akredytowane szkolenie ISTQB Certyfikowany Tester. Gdy testy UI okrzepną, naturalnym rozszerzeniem jest automatyzacja testów API.

Podsumowanie i następny krok

Lokalizowanie elementów to fundament automatyzacji w Selenium. Masz do dyspozycji osiem strategii: ID, name, class name, tag name, link text, partial link text, CSS selector oraz XPath. Każda ma swoje miejsce, ale kolejność wyboru powinna prowadzić od najbardziej stabilnych identyfikatorów ku bardziej złożonym wyrażeniom CSS i XPath. Im stabilniejsze lokatory, tym mniej kruchych testów i tym niższy koszt utrzymania całego zestawu.

Pamiętaj o zasadzie nadrzędnej: dobry selektor jest unikalny, względny i niezależny od wyglądu strony. Współpraca z deweloperami przy dedykowanych atrybutach testowych to najtańszy sposób na trwałą i przewidywalną automatyzację.

Chcesz wdrożyć stabilną automatyzację testów UI i zbudować framework, który realnie przyspiesza wydania zamiast generować szum? Zespół Quality Island pomoże zaprojektować i wdrożyć automatyzację testów UI dopasowaną do Twojej aplikacji, a kompetencje zespołu rozwiniesz na praktycznym szkoleniu z Selenium. Napisz do nas, a wskażemy podejście dopasowane do Twojego produktu i celów biznesowych.

Co o tym sądzisz?

Dodaj komentarz

Dodaj komentarz

Bądź na bieżąco
Bądź na bieżąco
AI w testowaniu oprogramowania - kurs online
KURS ONLINE: AI w testowaniu oprogramowania dla testerów i zespołów QA

Pierwotna cena wynosiła: 2499,00 PLN.Aktualna cena wynosi: 1150,00 PLN.

31.08.26
Testowanie dostępności cyfrowej - kurs online
KURS ONLINE: Wdrażanie i testowanie dostępności cyfrowej WCAG

Pierwotna cena wynosiła: 2499,00 PLN.Aktualna cena wynosi: 1149,00 PLN.

31.08.26
PROJEKT SZKOLENIOWO STAŻOWY: tester manualny
PROJEKT SZKOLENIOWO STAŻOWY: tester manualny

Pierwotna cena wynosiła: 5999,00 PLN.Aktualna cena wynosi: 4999,00 PLN.

21.08.26
ok. 3 miesiące
Popularne artykuły
Język Gherkin: co to jest i jak go używać w testowaniu oprogramowania
Jak zostać testerem oprogramowania?
Smoke test vs sanity test. Różnice i zastosowanie w praktyce QA
Najnowsze artykuły
Narzędzia do testowania oprogramowania – przegląd najlepszych rozwiązań dla QA
Testowanie e commerce: jak testować sklep internetowy, by sprzedawał bez przerw
Wprowadzenie do języka JAVA
Popularne kategorie