Co je to Selenium WebDriver?
โก Chytrรฉ shrnutรญ
Selenium WebDriver je open-source automatizaฤnรญ framework, kterรฝ ovlรกdรก skuteฤnรฉ prohlรญลพeฤe pลรญmo prostลednictvรญm nativnรญch API, coลพ umoลพลuje rychlรฉ, spolehlivรฉ a multi-browserovรฉ testovรกnรญ webovรฝch aplikacรญ pomocรญ jazykลฏ jako Java, Python, C# a Ruby.

Co je to Selenium WebDriver?
Selenium webovรฝ ovladaฤ je open-source kolekce API pouลพรญvanรฝch k automatizaci testovรกnรญ webovรฝch aplikacรญ. Ovฤลuje, zda webovรก aplikace funguje podle oฤekรกvรกnรญ v rลฏznรฝch prohlรญลพeฤรญch, vฤetnฤ Chromu, FirefoxSafari Microsoft Edgea Internet Explorer. WebDriver takรฉ podporuje testovรกnรญ napลรญฤ prohlรญลพeฤi v rลฏznรฝch operaฤnรญch systรฉmech.
Na rozdรญl od Selenium IDE, WebDriver vรกm umoลพลuje pouลพรญvat skuteฤnรฝ programovacรญ jazyk k nรกvrhu testovacรญch skriptลฏ, takลพe mลฏลพete aplikovat podmรญnฤnou logiku, jako je if-then-else a switch-case, plus loo.ping konstrukty jako for a do-while. WebDriver podporuje nรกsledujรญcรญ jazyky:
- Java
- .NET (C#)
- PHP
- Python
- Perl
- Rubรญn
- JavaSkript (pลes WebDriverJS / WebDriverIO)
Nemusรญte se je vลกechny nauฤit โ staฤรญ znalost jen jednoho. Pลรญklady v tomto tutoriรกlu pouลพรญvajรญ Java s Eclipse SDI.
Architecture of Selenium webovรฝ ovladaฤ
Selenium WebDriver vyuลพรญvรก architekturu klient-server a ovlรกdรก prohlรญลพeฤ pลรญmo z รบrovnฤ operaฤnรญho systรฉmu. Ke spuลกtฤnรญ libovolnรฉho skriptu potลebujete pouze preferovanรฉ IDE programovacรญho jazyka (obsahujรญcรญ Selenium pลรญkazy) a cรญlovรฝ prohlรญลพeฤ.
Rรกmec se sklรกdรก ze ฤtyล klรญฤovรฝch komponent: Selenium klientskรฉ knihovny (jazykovรฉ vazby), protokol JSON Wire pลes HTTP, ovladaฤe prohlรญลพeฤลฏ (napลรญklad ChromeDriver a GeckoDriver) a samotnรฉ prohlรญลพeฤe. Kaลพdรก komponenta komunikuje prostลednictvรญm standardizovanรฝch poลพadavkลฏ HTTP, coลพ dรกvรก WebDriveru jeho vรฝhody v rychlosti a pลesnosti, kterรฉ jsou popsรกny nรญลพe.
Rychlost
WebDriver je rychlejลกรญ neลพ Selenium RC, protoลพe komunikuje pลรญmo s prohlรญลพeฤem a k ovlรกdรกnรญ pouลพรญvรก jeho nativnรญ engine. Neexistuje ลพรกdnรฝ mezilehlรฝ JavaSkriptovacรญ proxy server, kterรฝ odstraลuje hlavnรญ problรฉm s vรฝkonem.
Interakce v reรกlnรฉm ลพivotฤ
WebDriver interaguje s prvky strรกnky stejnฤ jako skuteฤnรฝ uลพivatel. Pokud mรกte napลรญklad na testovanรฉ strรกnce zakรกzanรฉ textovรฉ pole, WebDriver do nฤj nemลฏลพe psรกt โ protoลพe by to nemohl udฤlat ani skuteฤnรฝ ฤlovฤk. Tento realismus sniลพuje poฤet faleลกnฤ pozitivnรญch vรฝsledkลฏ testลฏ.
API
WebDriver nabรญzรญ ฤistรฉ a jednoduchรฉ API, kterรฉ neobsahuje nadbyteฤnรฉ ani matoucรญ pลรญkazy, coลพ usnadลuje ฤtenรญ a รบdrลพbu testovacรญch skriptลฏ.
Podpora prohlรญลพeฤe
WebDriver takรฉ podporuje prohlรญลพeฤ HtmlUnit bez headless. Protoลพe HtmlUnit nemรก grafickรฉ rozhranรญ, oznaฤuje se jako โheadlessโ a bฤลพรญ neviditelnฤ na pozadรญ. Dรญky tomu je extrรฉmnฤ rychlรฝ pro provรกdฤnรญ testลฏ, protoลพe nespotลebovรกvรก ลพรกdnรฝ ฤas na vykreslovรกnรญ, a je ideรกlnรญ pro CI/CD pipelines, kde nenรญ k dispozici grafickรฉ rozhranรญ.
Jak Selenium WebDriver funguje krok za krokem
S ohledem na architekturu se typickรฝ test WebDriveru provรกdรญ takto:
- Napiลกte testovacรญ skript ve vรกmi zvolenรฉm jazyce pomocรญ Selenium klientskรฉ knihovny.
- Serializace pลรญkazลฏโvazba pลevรกdรญ kaลพdรฝ Selenium volรกnรญ do poลพadavku JSON Wire Protocol.
- Odeslat do ovladaฤe prohlรญลพeฤeโpoลพadavek dorazรญ k lokรกlnรญmu ovladaฤi (ChromeDriver, GeckoDriver, EdgeDriver), kterรฝ naslouchรก na lokรกlnรญm portu.
- ลidiฤ dรกvรก pokyny prohlรญลพeฤi pomocรญ nativnรญho automatizaฤnรญho API pro klikรกnรญ, psanรญ nebo ฤtenรญ prvkลฏ.
- Prohlรญลพeฤ se spustรญ a odpovรญ, pลiฤemลพ vรฝsledek se vrรกtรญ jako datovรก ฤรกst JSON.
- Prohlรกsit a nahlรกsitโ rรกmec, jako je napลรญklad TestNG, JUnit, nebo PyTest ovฤลรญ odpovฤฤ a zaznamenรก, zda byla รบspฤลกnรก nebo neรบspฤลกnรก.
Stejnรฝ skript mลฏลพe bฤลพet lokรกlnฤ, uvnitล Dockeru nebo na vzdรกlenรฝch gridech, jako je Selenium Mลรญลพka bez รบprav.
Selenium WebDriver vs. Selenium IDE vs. Selenium RC
Prรกvo Selenium Nรกstroj zรกvisรญ na cรญli testovรกnรญ. Nรญลพe uvedenรก tabulka porovnรกvรก vลกechny tลi:
| vlastnost | Selenium IDE | Selenium RC | Selenium webovรฝ ovladaฤ |
|---|---|---|---|
| Typ | Plugin prohlรญลพeฤe | JavaProxy server skriptลฏ | Nativnรญ automatizace API |
| Rychlost | Rychlรฉ pลehrรกvรกnรญ | Pomalu | nejrychlejลกรญ |
| Jazyky | Nevyplnฤno | Nรกsobek | Nรกsobek |
| Bezhlavรฝ prohlรญลพeฤ | Ne | Ne | Ano |
| Status | Omezenรฝ | Zastaralรฉ | Standard W3C |
Pro modernรญ projekty je doporuฤenou volbou WebDriver โ standardizovanรฝ podle W3C, aktivnฤ udrลพovanรฝ a s nejลกirลกรญ podporou jazykลฏ a prohlรญลพeฤลฏ.
Omezenรญ WebDriver
Pลestoลพe je WebDriver vรฝkonnรฝ, nenรญ bez kompromisลฏ. Znalost jeho omezenรญ vรกm pomลฏลพe realisticky naplรกnovat strategii automatizace.
WebDriver nemลฏลพe snadno podporovat zcela novรฉ prohlรญลพeฤe
Protoลพe WebDriver funguje na รบrovni operaฤnรญho systรฉmu a rลฏznรฉ prohlรญลพeฤe s nรญm komunikujรญ rลฏznรฝmi zpลฏsoby, mลฏลพe kaลพdรฉ novรฉ vydรกnรญ prohlรญลพeฤe vyลพadovat aktualizovanรฝ ovladaฤ. Tรฝm WebDriveru potลebuje ฤas na prostudovรกnรญ procesu novรฉho prohlรญลพeฤe, neลพ bude moci vydat kompatibilnรญ ovladaฤ. Do tรฉ doby se nฤkterรฉ pลรญkazy mohou v novรฉm prohlรญลพeฤi chovat nekonzistentnฤ nebo zcela selhรกvat.
ลฝรกdnรฉ vestavฤnรฉ testovacรญ protokoly
WebDriver sรกm o sobฤ negeneruje zprรกvy o vรฝsledcรญch testลฏ. Musรญte jej integrovat s frameworkem pro jednotkovรฉ testovรกnรญ (TestNG, JUnit, NUnit, PyTest) nebo knihovnu pro tvorbu reportลฏ (Allure, ExtentReports) pro zachycenรญ souhrnลฏ รบspฤลกnรฝch/neรบspฤลกnรฝch testลฏ a snรญmkลฏ obrazovky.

.jpg)




