Co je to Selenium? Úvod Výukový program
⚡ Chytré shrnutí
Selenium je bezplatný, open-source framework pro automatizované testování určený k ověřování webových aplikací napříč prohlížeči a platformami s využitím více programovacích jazyků. Umožňuje robustní, efektivní a škálovatelnou automatizaci testování pro moderní postupy QA.

Co je to Selenium?
Selenium je bezplatný (open-source) automatizovaný testovací rámec používaný k ověřování webových aplikací napříč různými prohlížeči a platformami. Můžete použít více programovacích jazyků jako např Java, C#, Pythonatd. vytvořit Selenium Testovací skripty. Testování se provádí pomocí Selenium testovací nástroj je obvykle označován jako Selenium Testování.
Odborné postřehy
„Vyhněte se používání fixních zpoždění spánku ve vašich testech. Místo toho používejte explicitní čekání (jako WebDriverWait) k čekání na načtení prvků. Díky tomu jsou vaše skripty spolehlivější a rychlejší, protože dynamicky reagují na skutečné podmínky stránky – což je klíčový osvědčený postup pro studenty na celém světě, počínaje…“ Selenium. "
👉 Zaregistrujte se pro živé vysílání zdarma Selenium Testovací projekt
Selenium Sada nástrojů
Selenium Software není jen jeden nástroj, ale sada softwaru, z nichž každý vyhovuje něčemu jinému Selenium Potřeby organizace testování kvality. Zde je seznam nástrojů
- Selenium Integrované vývojové prostředí (IDE)
- Selenium Dálkové ovládání (RC)
- webový ovladač
- Selenium Mřížka
Momentálně, Selenium RC a WebDriver jsou sloučeny do jednoho rámce a tvoří se Selenium 2. Selenium 1, mimochodem, odkazuje Selenium RC.
Video Tutorial Selenium
klikněte zde pokud video není přístupné
Kdo se vyvíjel Selenium?
Od Selenium je sbírka různých nástrojů, měla také různé vývojáře. Níže jsou uvedeny klíčové osoby, které do projektu významně přispěly Selenium Projekt
Především, Selenium byl vytvořil Jason Huggins v roce 2004Jako inženýr ve společnosti ThoughtWorks pracoval na webové aplikaci, která vyžadovala časté testování. Poté, co si uvědomil, že opakované ruční testování jejich aplikace se stává stále neefektivním, vytvořil... JavaScénář program, který by automaticky ovládal akce prohlížeče. Tento program pojmenoval "JavaSpouštěč testů skriptů.
Viděl potenciál v této myšlence pomoci automatizovat další webové aplikace, udělal JavaScriptRunner open-source, který byl později přejmenován Selenium Jádro. Pro ty, kteří mají zájem prozkoumat další možnosti testování webových aplikací, se podívejte na tyto Selenium alternativy.
Stejný problém se zásadami původu
Zásady stejného původu zakazují JavaKód skriptu z přístupu k prvkům z domény, která je jiná než tam, kde byl spuštěn. Například HTML kód na www.google.com používá JavaSkriptovací program „randomScript.js“. Stejná politika původu povolí programu randomScript.js přístup pouze ke stránkám v rámci google.com, jako například google.com/mail, google.com/login nebo google.com/signup. Nemůže však přistupovat ke stránkám z různých webů, jako například yahoo.com/search nebo guru99.com, protože patří do různých domén.
To je důvod, proč předtím, než Selenium RC, testeři potřebovali nainstalovat místní kopie obou Selenium Jádro (a JavaSkriptovací program) a webový server obsahující testovanou webovou aplikaci, takže by patřily do stejné domény
Narození Selenium Dálkové ovládání (Selenium RC)
Bohužel, testeři používající Selenium Core muselo nainstalovat celou testovanou aplikaci a webový server na své vlastní místní počítače kvůli omezením uloženým společností zásada stejného původuTakže další inženýr z ThoughtWorks, Paul Hammantse rozhodl vytvořit server, který by fungoval jako HTTP proxy, aby „oklamal“ prohlížeč a přiměl ho uvěřit, že Selenium Core a testovaná webová aplikace pocházejí ze stejné domény. Tento systém se stal známým jako Selenium dálkové ovládání or Selenium 1.
Narození Selenium Mřížka
Selenium Grid byl vyvinut společností Patrik Lightbody aby se vypořádal s potřebou co nejvíce minimalizovat dobu provádění testů. Systém zpočátku nazýval „Hostované zajištění kvality.“ Byl schopen zachytit snímky obrazovky prohlížeče během významných fází a také odesílání Selenium příkazy různým strojům současně.
Narození Selenium IDE
Shinya Kasatani Japonska vytvořil Selenium IDE, je Firefox a rozšíření pro Chrome, které dokáže automatizovat prohlížeč pomocí funkce nahrávání a přehrávání. S tímto nápadem přišel, aby dále zvýšil rychlost vytváření testovacích případů. Daroval Selenium IDE do Selenium Projekt v 2006.
Zrození WebDriveru
Simon Stewart vytvořil WebDriver cca 2006 kdy byly prohlížeče a webové aplikace stále výkonnější a více omezující JavaSkriptovací programy jako Selenium Jádro. Byl to první multiplatformní testovací framework, který dokázal ovládat prohlížeč na úrovni operačního systému.
Narození Selenium 2
In 2008, Celý Selenium Tým se rozhodl sloučit WebDriver a Selenium RC k vytvoření silnějšího nástroje s názvem Selenium 2s Jádrem je WebDriver. V současné době, Selenium RC se stále vyvíjí, ale pouze v režimu údržby. Většina Selenium Úsilí projektu se nyní soustředí na Selenium 2.
Tak proč ten název Selenium?
Název Selenium vyšel z vtipu, který Jason jednou prohodil svému týmu. Během Selenium's vývoj, další automatické testování Rámec byl populárně vytvořen společností s názvem Mercury interaktivní (ano, společnost, která původně vyráběla QTP, než ji koupila společnost HP). Od té doby Selenium je známým protijedem Mercury otravy, Jason navrhl to jméno a jeho spoluhráči to vzali. Tak jsme museli nazývat tento rámec až do současnosti.
Co je to Selenium IDE?
Selenium Integrované vývojové prostředí (IDE) je nejjednodušší rámec v Selenium apartmá a je nejsnadnější se to naučit. Jedná se o Chrome a Firefox plugin které můžete nainstalovat stejně snadno jako s jinými pluginy. Díky své jednoduchosti však Selenium IDE by se mělo používat pouze jako a prototypovací nástroj. Pokud chcete vytvořit pokročilejší testovací případy, budete muset použít kterýkoli z nich Selenium RC nebo WebDriver.
Co je to Selenium Dálkové ovládání (Selenium RC)?
Selenium RC byl vlajková loď testovacího rámce celku Selenium projekt na dlouhou dobu. Toto je první automatizovaný testování webu nástroj, který umožňuje uživatelům používat programovací jazyk, který preferují. Od verze 2.25.0 může RC podporovat následující programovací jazyky:
Co je WebDriver?
WebDriver se ukazuje jako lepší než Selenium IDE a Selenium RC v mnoha ohledech. Implementuje modernější a stabilnější přístup k automatizaci akcí prohlížeče. WebDriver, na rozdíl od Selenium RC, nespoléhá na JavaSkript pro Selenium Testování automatizace. Ovládá prohlížeč tak, že s ním přímo komunikuje.
Podporované jazyky jsou stejné jako v Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Rubín
Co je to Selenium Mřížka?
Selenium Mřížka je nástroj používá se společně s Selenium RC spustit paralelní testy na různých počítačích a v různých prohlížečích najednou. Paralelní provádění znamená spuštění více testů najednou.
Funkce:
- umožňuje simultánní běh testů in více prohlížečů a prostředí.
- Šetří čas obrovsky.
- Využívá hub-and-nodes pojem. Hub funguje jako centrální zdroj Selenium příkazy každému připojenému uzlu.
Selenium Podpora prohlížeče a prostředí
Kvůli jejich architektonickým rozdílům, Selenium SDI, Selenium RC a WebDriver podporují různé sady prohlížečů a operačních prostředí.
| Selenium IDE | webový ovladač | |
|---|---|---|
| Podpora prohlížeče | Mozilla Firefox a Chrome | Google Chrome 12+ Firefox Internet Explorer 7+ a Edge Safari, HtmlUnit a PhantomUnit |
| Operasystém | Windows, Mac OS X, Linux | Všechny operační systémy, kde lze spustit výše uvedené prohlížeče. |
Poznámka: Opera Ovladač již nefunguje
Jak si vybrat správně Selenium Nástroj pro vaše potřeby
| Nástroj | Proč si vybrat? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| webový ovladač |
|
| Selenium Mřížka |
|
Případové studie z reálného světa
🔍 Případová studie 1: Kompatibilita SaaS dashboardu napříč prohlížeči
Scénář
Společnost poskytující software jako službu se připravovala na vydání analytického dashboardu, který musel konzistentně fungovat v moderních prohlížečích (Chrome, Firefox, Edge, Safari).
Vyzvat
Manuální testování v každém prohlížeči bylo časově náročné, náchylné k chybám a nedokázalo držet krok s rychlými iteracemi vývoje.
Řešení s Selenium
Inženýr QA vytvořil Selenium Mřížka nastavení pro současné spouštění stejné sady testů v různých prohlížečích a kombinacích operačních systémů. Testy byly vytvořeny v Python použitím Selenium WebDriver pro akce jako přihlášení, filtrování grafů a export dat.
Výsledek
- Zkrácená doba trvání regrese o 80 %.
- Včas odhalil chyby vykreslování specifické pro prohlížeč (např. špatně zarovnané grafy v IE).
- Udržoval konzistentní uživatelské rozhraní dashboardu v celém prohlížeči bez nutnosti zbytečných manuálních cyklů.
⚙️ Případová studie 2: Integrace CI/CD pro webovou aplikaci prostřednictvím Selenium + TestNG
Scénář
Středně velká webová vývojářská firma se spoléhá na CI/CD pipeline s využitím Jenkinsu. Potřebovala zajistit, aby základní uživatelské cesty fungovaly po každé změně kódu.
Vyzvat
Nové nasazení sestavení občas narušovalo uživatelské toky – přihlašování, odesílání formulářů – a unikalo detekci až do manuálního testování na konci dne.
Řešení s Selenium
Tester implementoval Java-na základě Selenium Sada WebDriver integrovaná s TestNGTesty zahrnovaly ověřování, aktualizace profilů a vyhledávací funkce. Tyto testy běžely na všech sestaveních Jenkinsu s využitím paralelního spouštění a parametrizace prohlížeče.
Výsledek
- Dosažena rychlá zpětná vazba po selhání: přerušené toky byly okamžitě označeny.
- Snížení chyb po nasazení o více než 60 %.
- Umožnilo vývojářům řešit problémy ještě před dosažením QA.
🚀 Případová studie 3: Urychlení vydávání funkcí pro agregátor cestovních informací
Scénář
Platforma agregátora cestovních informací potřebovala vydat přepracovanou funkci rezervace letů. Manuální regresní testy na více než 10 stránkách trvaly několik dní a zablokovaly vydání.
Vyzvat
Tlak na zkrácení doby uvedení na trh nemohl překonat manuální testovací cykly, což riskovalo zpoždění nebo nižší kvalitu.
Řešení s Selenium & Model objektu stránky
Vedoucí oddělení automatizace QA představil strukturu modelu objektů stránky (POM) v jazyce C#. Selenium Skripty WebDriver zapouzdřovaly prvky stránky a akce (vyhledávání letů, použití filtrů a platební případy). Automatizované testovací běhy byly spouštěny každou noc na GitLab CI.
Výsledek
- Doba testování se zkrátila ze 3 dnů na pouhé 4 hodiny.
- Opětovné použití skriptů napříč různými funkcemi snižuje úsilí při skriptování o 50 %.
- Důvěra se zvýšila: verze byla vydána včas s minimálním počtem hlášení chyb.
Společný Selenium Výzvy (a opravy)
Třebaže Selenium je výkonný, testeři se často potýkají s problémy, které mohou ovlivnit spolehlivost a rychlost. Zde je několik běžných problémů a jak je vyřešit:
- Nespolehlivé testy:
Testy mohou náhodně selhat kvůli problémům s načasováním nebo sítí.
Fix: Používejte explicitní čekací operace a stabilní lokátory; vyhněte seThread.sleep(). - Dynamické webové prvky:
Změna ID elementů nebo XPathů způsobuje chyby typu „element nebyl nalezen“.
Fix: Používejte relativní XPath, CSS selektory nebo dynamické zpracování atributů. - SyncProblémy s chronizací:
Prvky se načítají pomaleji než provádění skriptu.
Fix: Implementujte WebDriverWait s očekávanými podmínkami. - Nesrovnalosti mezi prohlížeči:
Testy se v Chromu chovají jinak, Firefoxnebo Okraj.
Fix: Spustit testy na Selenium Gridové nebo cloudové platformy pro validaci napříč prohlížeči. - Zpracování vyskakovacích oken a upozornění:
Neočekávaná vyskakovací okna mohou přerušit průběh testu.
Fix: Použijte SeleniumRozhraní Alert nebo bloky try–catch pro jejich elegantní zpracování. - Režijní náklady na údržbu testů:
Časté změny uživatelského rozhraní činí testy křehkými.
Fix: Pro snadné aktualizace použijte model objektů stránek (POM) a správu verzí. - Integrační výzvy:
Kanály CI/CD mohou selhat kvůli problémům s ovladači.
Fix: Použijte Selenium Manažer (Selenium 4+) nebo WebDriver Manager pro automatickou správu ovladačů.
Ve zkratce: Většina Selenium Problémy pramení ze špatné synchronizace nebo křehkých lokátorů – obojí lze řešit inteligentnějším čekáním, modulárním designem a průběžnou údržbou.




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



