Definicja #
Selenium to open-source'owy zestaw narzędzi do automatyzacji przeglądarek internetowych, stworzony pierwotnie przez Jasona Hugginsa w 2004 roku. Jest najszerzej stosowanym frameworkiem do automatyzacji testów aplikacji webowych i stanowi standard w branży QA.
Zestaw Selenium składa się z kilku komponentów:
- Selenium WebDriver — kluczowe API do sterowania przeglądarką na poziomie protokołu WebDriver. Umożliwia pisanie testów w wielu językach: Java, Python, C#, JavaScript, Ruby. Każda przeglądarka ma dedykowany sterownik (ChromeDriver, GeckoDriver, EdgeDriver).
- Selenium IDE — wtyczka do przeglądarki nagrywająca i odtwarzająca akcje użytkownika (narzędzie dla początkujących).
- Selenium Grid — uruchamianie testów równolegle na wielu maszynach i przeglądarkach jednocześnie.
Selenium pozwala symulować wszystkie działania użytkownika: klikanie, wpisywanie tekstu, przewijanie strony, wypełnianie formularzy, obsługę alertów i pracę z wieloma kartami/oknami.
Główną alternatywą jest Playwright (Microsoft) i Cypress, które oferują szybsze i bardziej stabilne testy E2E dla nowoczesnych aplikacji JavaScript.
Zastosowania #
Selenium stosuje się do:
- Automatyzacji testów regresyjnych aplikacji webowych — weryfikacja istniejącej funkcjonalności po każdej zmianie kodu
- Testów end-to-end (E2E) symulujących pełne ścieżki użytkownika w przeglądarce
- Testów cross-browser — sprawdzanie zgodności aplikacji w Chrome, Firefox, Safari, Edge
- Integracji z pipeline CI/CD — automatyczne uruchamianie testów w Jenkins, GitHub Actions, GitLab CI
- Web scrapingu i automatyzacji zadań w przeglądarce (poza kontekstem testowym)
Ścieżka nauki #
Przed nauką Selenium warto znać podstawy programowania (najlepiej Java lub Python) i rozumieć strukturę stron HTML/CSS — selektory CSS i XPath są kluczowe do lokalizowania elementów.
Zacznij od:
- Instalacja i konfiguracja WebDriver dla wybranej przeglądarki (ChromeDriver)
- Lokalizowanie elementów: By.id, By.cssSelector, By.xpath, By.name
- Podstawowe akcje:
click(),sendKeys(),getText(),findElement() - Wzorzec Page Object Model (POM) — organizacja kodu testów
Następnie poznaj:
- Explicit i Implicit Waits — zarządzanie asynchronicznością (FluentWait)
- Selenium Grid — równoległe uruchamianie testów
- Integracja z JUnit/TestNG (Java) lub pytest (Python)
- Alternatywy: Playwright i Cypress — porównaj z Selenium
FAQ #
- Czym różni się Selenium od Playwright?
- Selenium jest starszym, bardziej dojrzałym narzędziem wspierającym wiele języków i przeglądarek. Playwright (Microsoft) jest nowocześniejszy — oferuje auto-waits, szybsze testy, wbudowane mocki sieciowe i prostszą konfigurację. Playwright jest dziś często preferowany dla nowych projektów.
- W jakich językach można pisać testy Selenium?
- Selenium WebDriver obsługuje Java, Python, C#, JavaScript (Node.js), Ruby i Kotlin. Najpopularniejsze kombinacje to Java+TestNG i Python+pytest.
- Ile zarabia tester automatyczny ze znajomością Selenium?
- Automation QA Engineer ze znajomością Selenium zarabia w Polsce od 8 000 do 16 000 zł brutto. Senior z doświadczeniem w architekturze frameworków testowych może zarabiać powyżej 18 000 zł.
- Czy Selenium nadaje się do testowania aplikacji mobilnych?
- Do aplikacji mobilnych używa się Appium, który rozszerza Selenium WebDriver o obsługę iOS i Android. Selenium samodzielnie obsługuje tylko przeglądarki desktopowe.