Czym jest Selenium? Wprowadzenie Tutorial
⚡ Inteligentne podsumowanie
Selenium to darmowe, otwarte środowisko do automatycznego testowania, zaprojektowane do walidacji aplikacji internetowych w różnych przeglądarkach i na różnych platformach z wykorzystaniem wielu języków programowania. Umożliwia ono solidną, wydajną i skalowalną automatyzację testów w nowoczesnych praktykach QA.

Czym jest Selenium?
Selenium to bezpłatna (otwarta) platforma do automatycznego testowania używana do sprawdzania poprawności aplikacji internetowych w różnych przeglądarkach i platformach. Możesz używać wielu języków programowania, takich jak Java, C#, Pythonitp., aby utworzyć Selenium Skrypty testowe. Testy wykonane przy użyciu Selenium Narzędzie testujące jest zwykle określane jako Selenium Testy.
Spostrzeżenia ekspertów
„Unikaj stosowania stałych opóźnień uśpienia w swoich testach. Zamiast tego używaj jawnych opóźnień (takich jak WebDriverWait), aby czekać na załadowanie elementów. Dzięki temu Twoje skrypty będą bardziej niezawodne i szybsze, ponieważ będą reagować dynamicznie na rzeczywiste warunki strony — kluczowa najlepsza praktyka dla studentów na całym świecie, zaczynając od Selenium".
👉 Zarejestruj się bezpłatnie na żywo Selenium Projekt testowy
Selenium Zestaw narzędzi
Selenium Oprogramowanie to nie pojedyncze narzędzie, ale pakiet oprogramowania, każdy element przeznaczony jest do czegoś innego Selenium Potrzeby testowania jakości organizacji. Oto lista narzędzi
- Selenium Zintegrowane środowisko programistyczne (IDE)
- Selenium Pilot zdalnego sterowania (RC)
- Sterownik sieciowy
- Selenium Krata
W tym momencie, Selenium RC i WebDriver są połączone w jedną strukturę Selenium 2. Selenium 1, nawiasem mówiąc, odnosi się do Selenium RC.
Video Tutorial Selenium
Kliknij w tym miejscu jeśli film nie jest dostępny
Kto się rozwinął Selenium?
Ponieważ Selenium to zbiór różnych narzędzi, miał też różnych programistów. Poniżej znajdują się najważniejsze osoby, które wniosły znaczący wkład w powstanie Selenium Projekt
Głównie, Selenium była stworzony przez Jasona Hugginsa w 2004 rokuInżynier w ThoughtWorks pracował nad aplikacją internetową, która wymagała częstych testów. Zdając sobie sprawę, że powtarzalne, ręczne testowanie aplikacji staje się coraz bardziej nieefektywne, stworzył JAVASCRIPT program, który automatycznie kontrolowałby działania przeglądarki. Nazwał ten program "Java„ScriptTestRunner.”
Dostrzegł w tym pomyśle potencjał umożliwiający automatyzację innych aplikacji internetowych JavaScriptRunner o otwartym kodzie źródłowym, który później przemianowano na Selenium rdzeń. Osoby zainteresowane poznaniem innych opcji testowania aplikacji internetowych mogą zapoznać się z poniższymi Selenium alternatywy.
Ten sam problem związany z polityką pochodzenia
Zasady tego samego pochodzenia zabraniają JavaKod skryptu uzyskuje dostęp do elementów z domeny innej niż ta, z której został uruchomiony. Na przykład kod HTML w witrynie www.google.com używa JavaProgram skryptowy „randomScript.js”. Zasada „to samo źródło” zezwala programowi randomScript.js na dostęp tylko do stron w domenie google.com, takich jak google.com/mail, google.com/login lub google.com/signup. Nie może on jednak uzyskać dostępu do stron z innych witryn, takich jak yahoo.com/search czy guru99.com, ponieważ należą one do różnych domen.
To jest powód, dla którego przed Selenium RC, testerzy musieli zainstalować lokalne kopie obu Selenium Rdzeń (a JavaProgram skryptowy) i serwer WWW zawierający testowaną aplikację WWW, więc powinny należeć do tej samej domeny
Narodziny Selenium Zdalne sterowanie (Selenium RC)
Niestety, testerzy używający Selenium Core musiał zainstalować całą testowaną aplikację i serwer WWW na swoich własnych komputerach lokalnych ze względu na ograniczenia nałożone przez polityka tego samego pochodzenia. Więc inny inżynier z ThoughtWorks, Pawła Hammantapostanowił stworzyć serwer, który działałby jako serwer proxy HTTP, aby „oszukać” przeglądarkę i sprawić, by uwierzyła, że Selenium Rdzeń i testowana aplikacja internetowa pochodzą z tej samej domeny. System ten stał się znany jako Selenium Zdalne sterowanie or Selenium 1.
Narodziny Selenium Krata
Selenium Siatka została opracowana przez Patricka Lightbody’ego aby sprostać potrzebie maksymalnego skrócenia czasu wykonywania testów. Początkowo nazwał system „Hostingowe zapewnianie jakości”. Był w stanie przechwytywać zrzuty ekranu przeglądarki podczas ważnych etapów, a także wysyłanie Selenium poleceń do różnych maszyn jednocześnie.
Narodziny Selenium IDE
Shinya Kasatani stworzonej Japonii Selenium IDE, A Firefox i rozszerzenie do Chrome, które może zautomatyzować przeglądarkę poprzez funkcję nagrywania i odtwarzania. Wpadł na ten pomysł, aby jeszcze bardziej przyspieszyć tworzenie przypadków testowych. Przekazał darowiznę Selenium IDE do Selenium Projekt w 2006.
Narodziny WebDrivera
Simon Stewart stworzył WebDriver około 2006 kiedy przeglądarki i aplikacje internetowe stawały się coraz potężniejsze i bardziej restrykcyjne JavaProgramy skryptowe takie jak Selenium Rdzeń. Było to pierwsze wieloplatformowe środowisko testowe umożliwiające kontrolę przeglądarki na poziomie systemu operacyjnego.
Narodziny Selenium 2
In 2008, Cała Selenium Zespół zdecydował się połączyć WebDriver i Selenium RC w celu utworzenia potężniejszego narzędzia o nazwie Selenium 2Z WebDriver będący rdzeniem. Obecnie, Selenium RC jest nadal rozwijany, ale tylko w trybie konserwacji. Większość Selenium Wysiłki projektu skupiają się obecnie na Selenium 2.
Dlaczego więc nazwa Selenium?
Imię Selenium wziął się z żartu, który Jason rzucił kiedyś swojemu zespołowi. Podczas Seleniumrozwój, inny zautomatyzowane testowanie Ramę popularnie tworzyła firma o nazwie Mercury Interaktywny (tak, firma, która pierwotnie produkowała QTP, zanim została przejęta przez HP). Ponieważ Selenium jest dobrze znanym antidotum na Mercury zatruciem, Jason zasugerował to imię, a jego koledzy z drużyny je przyjęli. Tak więc nazwaliśmy te ramy aż do chwili obecnej.
Czym jest Selenium IDE?
Selenium Zintegrowane środowisko programistyczne (IDE) to najprostsze ramy Selenium apartament i jest najłatwiejszy do nauczenia. Jest Chrome i Firefox wtyczka które możesz zainstalować tak łatwo, jak to tylko możliwe, za pomocą innych wtyczek. Jednak ze względu na swoją prostotę, Selenium IDE powinno być używane tylko jako plik IDE narzędzie do prototypowania. Jeśli chcesz utworzyć bardziej zaawansowane przypadki testowe, będziesz musiał użyć jednego z nich Selenium RC lub WebDriver.
Czym jest Selenium Zdalne sterowanie (Selenium RC)?
Selenium RC był flagowy framework testowy całości Selenium projekt na długi czas. To pierwszy automat testowanie sieci narzędzie to pozwala użytkownikom używać preferowanego języka programowaniaOd wersji 2.25.0 RC może obsługiwać następujące języki programowania:
Co to jest WebDriver?
WebDriver okazuje się lepszy niż Selenium IDE i Selenium RC w wielu aspektach. Implementuje bardziej nowoczesne i stabilne podejście do automatyzacji działań przeglądarki. WebDriver, w przeciwieństwie do Selenium RC, nie opiera się na JavaSkrypt dla Selenium Testowanie automatyczne. Kontroluje przeglądarkę komunikując się z nią bezpośrednio.
Obsługiwane języki są takie same jak w Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Rubin
Czym jest Selenium Siatka?
Selenium Siatka jest narzędziem używane razem z Selenium RC do uruchomienia testy równoległe na różnych komputerach i w różnych przeglądarkach jednocześnie. Wykonywanie równoległe oznacza uruchamianie wielu testów jednocześnie.
Cechy:
- umożliwia jednoczesne uruchamianie testów in wiele przeglądarek i środowisk.
- Oszczędność czasu ogromnie.
- Wykorzystuje koncentratory i węzły pojęcie. Hub pełni rolę centralnego źródła Selenium polecenia dla każdego podłączonego do niego węzła.
Selenium Obsługa przeglądarki i środowiska
Ze względu na różnice architektoniczne, Selenium SDI, Selenium RC i WebDriver obsługują różne zestawy przeglądarek i środowisk operacyjnych.
| Selenium IDE | Sterownik sieciowy | |
|---|---|---|
| Wsparcie dla przeglądarki | Mozilla Firefox i Chrome | Google Chrome 12 + Firefox Internet Explorer 7+ i Edge Safari, HTMLUnit i PhantomUnit |
| Operasystemu | Windows, Mac OS X, Linux | Wszystkie systemy operacyjne, w których można uruchomić powyższe przeglądarki. |
Uwaga: Opera Sterownik już nie działa
Jak wybrać właściwy Selenium Narzędzie dla Twoich potrzeb
| Narzędzie | Po co wybierać? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| Sterownik sieciowy |
|
| Selenium Krata |
|
Studia przypadków w świecie rzeczywistym
🔍 Studium przypadku 1: Kompatybilność między przeglądarkami dla pulpitu nawigacyjnego SaaS
Scenariusz
Firma oferująca oprogramowanie jako usługę przygotowywała się do wydania pulpitu analitycznego, który musiał działać spójnie we wszystkich nowoczesnych przeglądarkach (Chrome, Firefox(przeglądaj przeglądarki Edge i Safari).
Opis projektu
Ręczne testowanie każdej przeglądarki było czasochłonne, podatne na błędy i nie nadążało za szybkimi iteracjami rozwoju.
Rozwiązanie z Selenium
Inżynier ds. zapewnienia jakości stworzył Selenium Krata skonfigurowano do jednoczesnego wykonywania tego samego zestawu testów w wielu przeglądarkach i kombinacjach systemów operacyjnych. Testy zostały utworzone w Python za pomocą Selenium WebDriver do takich czynności jak logowanie, filtrowanie wykresów i eksportowanie danych.
Wynik
- Skrócono czas regresji o 80%.
- Wcześnie odkryto błędy renderowania charakterystyczne dla danej przeglądarki (np. nieprawidłowo wyrównane wykresy w IE).
- Utrzymano spójny interfejs użytkownika pulpitu nawigacyjnego w całej przeglądarce bez dodatkowych cykli ręcznych.
⚙️ Studium przypadku 2: Integracja CI/CD dla aplikacji internetowej za pośrednictwem Selenium + TestNG
Scenariusz
Średniej wielkości firma zajmująca się tworzeniem stron internetowych polega na procesie CI/CD wykorzystującym Jenkins. Musieli upewnić się, że podstawowe ścieżki użytkownika działają po każdej zmianie kodu.
Opis projektu
Wdrożenia nowych wersji oprogramowania czasami zakłócały przepływ użytkowników — logowanie, przesyłanie formularzy — co uniemożliwiało wykrycie aż do zakończenia ręcznych testów na koniec dnia.
Rozwiązanie z Selenium
Tester zaimplementował JavaOparte Selenium Pakiet WebDriver zintegrowany z TestNG. Testy obejmowały uwierzytelnianie, aktualizacje profili i funkcje wyszukiwania. Były one uruchamiane przy każdej kompilacji Jenkins, wykorzystując równoległe wykonywanie i parametryzację przeglądarki.
Wynik
- Osiągnięto szybką reakcję zwrotną: uszkodzone przepływy były natychmiast oznaczane.
- O ponad 60% zmniejszono liczbę błędów występujących po wdrożeniu.
- Umożliwiło programistom rozwiązywanie problemów zanim trafiły one do działu zapewnienia jakości.
🚀 Studium przypadku 3: Przyspieszenie wdrażania funkcji dla agregatora podróży
Scenariusz
Platforma agregująca podróże musiała wydać udoskonaloną funkcję rezerwacji lotów. Ręczne testy regresji na ponad 10 stronach trwały dni i zablokowały wydanie.
Opis projektu
Presja związana z koniecznością skrócenia czasu wprowadzania produktów na rynek nie mogła być większa niż ręczne cykle testowania, gdyż wiązało się to z ryzykiem opóźnień i obniżenia jakości.
Rozwiązanie z Selenium & Model obiektu strony
Kierownik działu automatyzacji kontroli jakości przedstawił strukturę Page Object Model (POM) w języku C#. Selenium Skrypty WebDriver hermetyzowały elementy strony i akcje (wyszukiwanie lotów, stosowanie filtrów i obsługa płatności). Automatyczne testy były uruchamiane co noc w GitLab CI.
Wynik
- Czas trwania testów skrócił się z 3 dni do zaledwie 4 godzin.
- Ponowne wykorzystanie skryptów w wielu funkcjach pozwoliło ograniczyć nakład pracy związany z ich tworzeniem o 50%.
- Zaufanie wzrosło: wersja została dostarczona zgodnie z planem, a zgłoszeń błędów było niewiele.
wspólny Selenium Wyzwania (i poprawki)
Nawet jeśli Selenium jest potężny, testerzy często napotykają problemy, które mogą wpłynąć na niezawodność i szybkość. Oto kilka typowych problemów i sposoby ich rozwiązania:
- Niestabilne testy:
Testy mogą losowo kończyć się niepowodzeniem z powodu problemów z czasem lub siecią.
Naprawić: Używaj jawnych oczekiwań i stabilnych lokalizatorów; unikajThread.sleep(). - Dynamiczne elementy sieciowe:
Zmiana identyfikatorów elementów lub ścieżek XPath powoduje błędy informujące o nieznalezieniu elementu.
Naprawić: Użyj względnych ścieżek XPath, selektorów CSS lub dynamicznej obsługi atrybutów. - SyncProblemy z chronizacją:
Ładowanie elementów jest wolniejsze niż wykonywanie skryptu.
Naprawić: Zaimplementuj WebDriverWait z oczekiwanymi warunkami. - Niespójności między przeglądarkami:
Testy zachowują się inaczej w Chrome, Firefoxlub Edge.
Naprawić: Uruchom testy na Selenium Platformy siatkowe lub chmurowe do walidacji międzyprzeglądarkowej. - Obsługa wyskakujących okienek i alertów:
Nieoczekiwane wyskakujące okienka mogą zakłócić przebieg testu.
Naprawić: Zastosowanie SeleniumInterfejs Alert lub bloki try–catch, aby obsługiwać je prawidłowo. - Narzut na konserwację testów:
Częste zmiany interfejsu użytkownika sprawiają, że testy są niestabilne.
Naprawić: Zastosuj Page Object Model (POM) i kontrolę wersji, aby ułatwić wprowadzanie aktualizacji. - Wyzwania integracyjne:
Procesy CI/CD mogą przestać działać z powodu problemów ze sterownikami.
Naprawić: Zastosowanie Selenium Menedżer (Selenium 4+) lub WebDriver Manager do automatycznego zarządzania sterownikami.
W skrócie: Większość Selenium problemy wynikają ze słabej synchronizacji lub niestabilnych lokalizatorów — oba te problemy można rozwiązać poprzez inteligentniejsze oczekiwanie, modułową konstrukcję i ciągłą konserwację.




.png)
.jpg)
.jpg)
.jpg)



