Wat is Selenium? Introductie Tutorial
⚡ Slimme samenvatting
Selenium is een gratis, open-source, geautomatiseerd testframework dat is ontworpen om webapplicaties te valideren in verschillende browsers en platforms met behulp van meerdere programmeertalen. Het maakt robuuste, efficiënte en schaalbare testautomatisering mogelijk voor moderne QA-praktijken.

Wat is Selenium?
Selenium is een gratis (open-source) geautomatiseerd testframework dat wordt gebruikt om webapplicaties in verschillende browsers en platforms te valideren. U kunt meerdere programmeertalen gebruiken, zoals Java, C#, Python, enz. om te creëren Selenium Testscripts. Testen gedaan met behulp van de Selenium testtool wordt meestal aangeduid als Selenium Testen.
Deskundige inzichten
Vermijd het gebruik van vaste slaapvertragingen in je tests. Gebruik in plaats daarvan expliciete wachttijden (zoals WebDriverWait) om te wachten tot elementen geladen zijn. Dit maakt je scripts betrouwbaarder en sneller, omdat ze dynamisch reageren op de werkelijke pagina-omstandigheden – een belangrijke best practice voor studenten overal ter wereld, te beginnen met Selenium. '
👉 Schrijf je gratis in voor Live Selenium Testproject
Selenium Gereedschapssuite
Selenium Software is niet zomaar een enkel hulpmiddel, maar een pakket software, waarbij elk onderdeel op een ander doel is gericht Selenium QA-testbehoeften van een organisatie. Hier is de lijst met hulpmiddelen
- Selenium Geïntegreerde ontwikkelomgeving (IDE)
- Selenium Afstandsbediening (RC)
- webdriver
- Selenium Raster
Op het moment, Selenium RC en WebDriver worden samengevoegd tot één enkel raamwerk Selenium 2. Selenium 1 verwijst overigens naar Selenium RC.
Video Tutorial Selenium
Klik hier als de video niet toegankelijk is
Wie ontwikkelde Selenium?
Sinds Selenium is een verzameling van verschillende tools, maar had ook verschillende ontwikkelaars. Hieronder vindt u de belangrijkste personen die opmerkelijke bijdragen hebben geleverd aan de Selenium Project
In de eerste plaats, Selenium was gemaakt door Jason Huggins in 2004Als ingenieur bij ThoughtWorks werkte hij aan een webapplicatie die regelmatig getest moest worden. Toen hij zich realiseerde dat de repetitieve handmatige tests van hun applicatie steeds inefficiënter werden, creëerde hij een JavaScript programma dat automatisch de acties van de browser zou besturen. Hij noemde dit programma de "JavaScriptTestRunner.”
Hij zag potentieel in dit idee om andere webapplicaties te helpen automatiseren JavaScriptRunner open-source, dat later werd hernoemd Selenium Kern. Voor degenen die geïnteresseerd zijn in het verkennen van andere opties voor het testen van webapplicaties, bekijk deze eens Selenium alternatieven.
Hetzelfde probleem met het oorsprongsbeleid
Hetzelfde Origin-beleid verbiedt JavaScriptcode die toegang krijgt tot elementen van een ander domein dan waar het is gestart. De HTML-code in www.google.com gebruikt bijvoorbeeld een JavaScriptprogramma "randomScript.js". Hetzelfde oorsprongsbeleid staat randomScript.js alleen toe om toegang te krijgen tot pagina's binnen google.com, zoals google.com/mail, google.com/login of google.com/signup. Het kan echter geen toegang krijgen tot pagina's van andere sites, zoals yahoo.com/search of guru99.com, omdat deze tot verschillende domeinen behoren.
Dit is de reden waarom, voorafgaand aan Selenium RC moesten testers lokale kopieën van beide installeren Selenium Kern (een JavaScriptprogramma) en de webserver met de te testen webapplicatie, zodat ze tot hetzelfde domein behoren
Geboorte van Selenium Afstandsbediening (Selenium RC)
Helaas gebruiken testers Selenium Core moest de hele te testen applicatie en de webserver op hun eigen lokale computers installeren vanwege de beperkingen die werden opgelegd door de beleid van dezelfde oorsprong. Dus nog een ingenieur van ThoughtWorks, Paul Hammantbesloten een server te creëren die zou fungeren als een HTTP-proxy om de browser te 'misleiden' door hem te laten geloven dat Selenium Core en de geteste webapplicatie komen uit hetzelfde domein. Dit systeem werd bekend als de Selenium Afstandsbediening or Selenium 1.
Geboorte van Selenium Raster
Selenium Grid is ontwikkeld door Patrick Lichtlichaam om tegemoet te komen aan de noodzaak om de uitvoeringstijden van tests zoveel mogelijk te minimaliseren. Aanvankelijk noemde hij het systeem “Gehoste QA.” Het was in staat om browser-screenshots te maken tijdens belangrijke fasen, en ook van uitzenden Selenium opdrachten tegelijkertijd naar verschillende machines sturen.
Geboorte van Selenium IDE
Shinya Kasatani van Japan gecreëerd Selenium IDE, een Firefox en een Chrome-extensie die de browser kan automatiseren via een opname- en afspeelfunctie. Hij bedacht dit idee om de snelheid van het maken van testcases verder te verhogen. Hij doneerde Selenium IDE naar de Selenium Projecteren in 2006.
Geboorte van WebDriver
Simon Stewart WebDriver circa gemaakt 2006 toen browsers en webapplicaties krachtiger en restrictiever werden JavaScriptprogramma's zoals Selenium Kern. Het was het eerste platformonafhankelijke testframework dat de browser op besturingssysteemniveau kon aansturen.
Geboorte van Selenium 2
In 2008De hele Selenium Het team besloot WebDriver en Selenium RC om een krachtiger instrument te vormen genaamd Selenium 2met WebDriver is de kern. Momenteel, Selenium RC is nog steeds in ontwikkeling, maar alleen in onderhoudsmodus. De meeste Selenium De inspanningen van het Project zijn nu gericht op Selenium 2.
Dus, waarom de naam Selenium?
De naam Selenium kwam voort uit een grap die Jason ooit tegen zijn team maakte. Tijdens Selenium's ontwikkeling, een andere geautomatiseerd testen framework werd in de volksmond gemaakt door het bedrijf genaamd Mercury Interactief (ja, het bedrijf dat het oorspronkelijk maakte) QTP (voordat het door HP werd overgenomen). Selenium is een bekend tegengif voor Mercury vergiftiging suggereerde Jason die naam en zijn teamgenoten namen die over. Dus zo hebben we dit raamwerk tot op heden kunnen noemen.
Wat is Selenium IDE?
Selenium Geïntegreerde ontwikkelomgeving (IDE) is de eenvoudigste raamwerk in de Selenium suite en is de gemakkelijkste om te leren. Het is Chrome en Firefox inpluggen die u net zo eenvoudig kunt installeren als met andere plug-ins. Door zijn eenvoud is het echter Selenium IDE mag alleen worden gebruikt als prototypeping tools. Als u geavanceerdere testgevallen wilt maken, moet u een van beide gebruiken Selenium RC of WebDriver.
Wat is Selenium Afstandsbediening (Selenium RC)?
Selenium RC was de vlaggenschip testframework Van het geheel Selenium project al langere tijd. Dit is de eerste geautomatiseerde webtesten tool dat stelt gebruikers in staat een programmeertaal te gebruiken die zij verkiezenVanaf versie 2.25.0 ondersteunt RC de volgende programmeertalen:
Wat is WebDriver?
De WebDriver blijkt beter te zijn dan Selenium IDE en Selenium RC in veel aspecten. Het implementeert een modernere en stabielere aanpak bij het automatiseren van de acties van de browser. WebDriver, in tegenstelling tot Selenium RC, vertrouwt niet op JavaScript voor Selenium Automatisering testen. Het bestuurt de browser door er rechtstreeks mee te communiceren.
De ondersteunde talen zijn dezelfde als die in Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Robijn
Wat is Selenium Rooster?
Selenium Raster is een hulpmiddel gebruikt samen met Selenium RC om te draaien parallelle testen op verschillende machines en verschillende browsers tegelijkertijd. Parallelle uitvoering betekent dat meerdere tests tegelijk worden uitgevoerd.
Kenmerken:
- Schakelt gelijktijdig uitvoeren van tests in meerdere browsers en omgevingen.
- Bespaart tijd enorm.
- Maakt gebruik van de hub-en-knooppunten concept. De hub fungeert als een centrale bron van Selenium commando's naar elk knooppunt dat ermee verbonden is.
Selenium Browser- en omgevingsondersteuning
Vanwege hun architectonische verschillen, Selenium SDI, Selenium RC en WebDriver ondersteunen verschillende browsers en besturingssystemen.
| Selenium IDE | webdriver | |
|---|---|---|
| Browserondersteuning | mozilla Firefox en Chrome | Google Chrome 12+ Firefox Internet Explorer 7+ en Edge Safari, HtmlUnit en PhantomUnit |
| Operating-systeem | Windows, Mac OS X, Linux | Alle besturingssystemen waarop de bovenstaande browsers kunnen draaien. |
Let op: Opera Chauffeur werkt niet meer
Hoe kies je het juiste? Selenium Hulpmiddel voor uw behoeften
| Gereedschap | Waarom zou je kiezen? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| webdriver |
|
| Selenium Raster |
|
Casestudy's uit de echte wereld
🔍 Case Study 1: Cross-browser compatibiliteit voor SaaS Dashboard
Scenario
Een software-as-a-servicebedrijf bereidde zich voor op de release van een analysedashboard dat consistent moest functioneren in moderne browsers (Chrome, Firefox, Edge, Safari).
Challenge
Handmatig testen op elke browser was tijdrovend, foutgevoelig en kon de snelle ontwikkelingsiteraties niet bijhouden.
Oplossing met Selenium
Een QA-ingenieur heeft een Selenium Raster ingesteld om dezelfde testsuite gelijktijdig uit te voeren op meerdere browsers en besturingssysteemcombinaties. De tests werden geschreven in Python gebruik Selenium WebDriver voor acties zoals inloggen, grafiekfiltering en gegevensexport.
Resultaat
- De regressieduur is met 80% verminderd.
- Browserspecifieke weergavefouten werden al vroeg ontdekt (bijvoorbeeld verkeerd uitgelijnde grafieken in Internet Explorer).
- Handhaafde een consistente UX voor het dashboard in de hele browsermatrix zonder extra handmatige cycli.
⚙️ Case Study 2: CI/CD-integratie voor web-app via Selenium + TestNG
Scenario
Een middelgroot webontwikkelingsbedrijf vertrouwt op een CI/CD-pipeline die gebruikmaakt van JenkinsZe moesten ervoor zorgen dat de belangrijkste gebruikerservaringen na elke codewijziging bleven werken.
Challenge
Nieuwe implementaties verstoorden soms de gebruikersprocessen, zoals inloggen en het verzenden van formulieren.ping detectie tot aan handmatige controle aan het einde van de dag.
Oplossing met Selenium
Een tester heeft een JavaGebaseerde Selenium WebDriver-suite geïntegreerd met TestNGDe tests omvatten authenticatie, profielupdates en zoekfunctionaliteiten. Deze werden op elk apparaat uitgevoerd. Jenkins bouwen, gebruikmakend van parallelle uitvoering en browserparameterisatie.
Resultaat
- Er is fail-fast feedback bereikt: gebroken stromen werden onmiddellijk gemarkeerd.
- Het aantal bugs na implementatie is met ruim 60% verminderd.
- Hierdoor konden ontwikkelaars problemen aanpakken voordat deze de QA-procedure bereikten.
🚀 Case Study 3: Versnelde functie-release voor Travel Aggregator
Scenario
Een reisaggregatorplatform moest een vernieuwde functie voor het boeken van vluchten lanceren. Handmatige regressietests op meer dan 10 pagina's duurden dagen en blokkeerden de release.
Challenge
De druk om de time-to-market te verkorten kon de handmatige testcycli niet inhalen, waardoor het risico bestond op vertragingen of een lagere kwaliteit.
Oplossing met Selenium & Pagina-objectmodel
Een QA-automatiseringsleider introduceerde een Page Object Model (POM)-structuur in C#. Selenium WebDriver-scripts kapselden pagina-elementen en acties in (vluchten zoeken, filters toepassen en betalingsgevallen). Geautomatiseerde testruns werden elke nacht geactiveerd op GitLab CI.
Resultaat
- De testtijd daalde van 3 dagen naar slechts 4 uur.
- Door scripts opnieuw te gebruiken voor meerdere functies, wordt de scriptinspanning met 50% verminderd.
- Het vertrouwen nam toe: de release werd op tijd uitgebracht, met minimale bug-rapporten.
Veelgestelde Selenium Uitdagingen (en oplossingen)
Hoewel Selenium is krachtig, testers worden vaak geconfronteerd met uitdagingen die de betrouwbaarheid en snelheid kunnen beïnvloeden. Hier zijn enkele veelvoorkomende problemen en hoe u ze kunt oplossen:
- Flauwe tests:
Tests kunnen willekeurig mislukken vanwege timing- of netwerkproblemen.
Fix: Gebruik expliciete wacht- en stabiele locators; vermijdThread.sleep(). - Dynamische webelementen:
Het wijzigen van element-ID's of XPaths kan leiden tot 'element niet gevonden'-fouten.
Fix: Gebruik relatieve XPaths, CSS-selectors of dynamische kenmerkverwerking. - Syncchronisatieproblemen:
Elementen laden langzamer dan de uitvoering van het script.
Fix: Implementeer WebDriverWait met de verwachte voorwaarden. - Inconsistenties tussen browsers:
Tests gedragen zich anders op Chrome, Firefox, of Rand.
Fix: Voer tests uit op Selenium Grid- of cloudplatforms voor validatie tussen browsers. - Pop-ups en waarschuwingen afhandelen:
Onverwachte pop-ups kunnen de teststroom verstoren.
Fix: Gebruik Selenium's Alert-interface of try-catch-blokken om ze op een elegante manier te verwerken. - Overheadkosten voor testonderhoud:
Regelmatige wijzigingen in de gebruikersinterface maken tests kwetsbaar.
Fix: Gebruik Page Object Model (POM) en versiebeheer voor eenvoudige updates. - Integratie-uitdagingen:
CI/CD-pipelines kunnen mislukken vanwege problemen met drivers.
Fix: Gebruik Selenium Beheerder (Selenium 4+) of WebDriver Manager om drivers automatisch te beheren.
In het kort: De meeste Selenium Problemen worden veroorzaakt door slechte synchronisatie of broze locators. Beide zijn op te lossen door slimmer te wachten, modulair ontwerp en continu onderhoud.




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



