Selenium is een open-source framework voor het automatiseren van browsers. Het wordt wereldwijd gebruikt door ontwikkelaars en testers om webapplicaties automatisch te testen op functionaliteit, compatibiliteit en stabiliteit. Dankzij Selenium kunnen repetitieve testtaken worden geautomatiseerd, waardoor handmatig testen tot een minimum beperkt blijft en de snelheid van softwareontwikkeling toeneemt.
In een tijd waarin continuous integration en agile ontwikkelmethoden de norm zijn, is een robuust testframework zoals Selenium essentieel. Het ondersteunt meerdere programmeertalen, browsers en besturingssystemen, waardoor het geschikt is voor vrijwel elk webproject.
Selenium werd in 2004 ontwikkeld door Jason Huggins bij ThoughtWorks. Hij zocht naar een manier om repetitieve tests op webapplicaties te automatiseren en bouwde een JavaScript-programma dat browserinteracties kon simuleren. Dit was het begin van Selenium Core.
Later dat jaar werd het project uitgebreid met Selenium RC (Remote Control), waarmee gebruikers tests konden uitvoeren in verschillende browsers. Selenium RC was innovatief, maar had beperkingen zoals trage prestaties en afhankelijkheid van een proxyserver.
In 2008 introduceerde Simon Stewart Selenium WebDriver, een nieuwe aanpak die direct met de browser communiceerde zonder tussenlagen. WebDriver werd in 2011 samengevoegd met Selenium RC onder de naam Selenium 2. Sindsdien is Selenium uitgegroeid tot de standaard in browserautomatisering, met Selenium 4 als meest recente en toekomstgerichte versie.
Selenium is niet één enkel programma, maar een verzameling tools die samenwerken. Elk onderdeel heeft een specifieke functie binnen het testproces:
Selenium IDE (Integrated Development Environment) is een gebruiksvriendelijke browserextensie voor Firefox en Chrome. Het stelt gebruikers in staat om interacties op een webpagina op te nemen en om te zetten in herhaalbare testscripts. Dit maakt het geschikt voor testers zonder programmeerkennis of voor het snel maken van prototypes.
Selenium IDE is vooral handig voor eenvoudige testcases of proof-of-concepts, maar mist de flexibiliteit, schaalbaarheid en kracht van programmeerbare testomgevingen.
Selenium RC was lange tijd de kern van Selenium. Het bood ondersteuning voor meerdere programmeertalen en browsers, maar had als nadeel dat het een tussenliggende server gebruikte om commando’s naar de browser te sturen. Dit maakte het trager en gevoeliger voor fouten. Sinds Selenium 2 is RC officieel verouderd en vervangen door WebDriver.
Selenium WebDriver is het krachtigste en meest gebruikte onderdeel van de Selenium-suite. Het werkt rechtstreeks met de browser via browserdrivers (zoals ChromeDriver of GeckoDriver), wat zorgt voor snellere en betrouwbaardere tests.
WebDriver ondersteunt programmeertalen zoals Java, Python, C#, Ruby en JavaScript. Hierdoor kunnen teams gebruikmaken van hun bestaande codebase en tooling.
De voordelen van Selenium WebDriver zijn:
Ondersteuning voor meerdere browsers
Snelle en directe communicatie met de browser
Volledige controle over DOM-elementen
Flexibiliteit door integratie met testframeworks zoals JUnit, TestNG en PyTest
Selenium WebDriver is de kerncomponent voor moderne testautomatisering met Selenium. Het stelt je in staat om browseracties te automatiseren door gebruik te maken van programmeertalen zoals Java, Python, C#, Ruby en JavaScript. Anders dan Selenium RC werkt WebDriver direct met de browser via een browser-specifieke driver, zonder tussenliggende server.
WebDriver is geschikt voor het automatiseren van complexe, dynamische webapplicaties. Het is ideaal voor scenario’s waarbij interactie met elementen op de pagina (zoals dropdowns, knoppen en pop-ups) belangrijk is. Door de integratie met frameworks kun je eenvoudig testen plannen, rapporteren en integreren in CI/CD pipelines.
De architectuur van Selenium WebDriver bestaat uit vier lagen:
Testscript – geschreven in een programmeertaal zoals Python of Java.
Language Bindings – de API die jouw testscript vertaalt naar WebDriver-oproepen.
Browser Drivers – zoals ChromeDriver of GeckoDriver, die commando’s omzetten naar browseracties.
Browser – de daadwerkelijke applicatie waarin de test wordt uitgevoerd.
Deze directe communicatie zorgt voor betere prestaties, minder vertraging en nauwkeurigere interacties met webpagina's.
Selenium WebDriver ondersteunt onder andere:
Google Chrome
Mozilla Firefox
Microsoft Edge
Safari
Opera
Daarnaast kunnen ook mobiele browsers op Android en iOS via Appium worden aangestuurd.
Hieronder een basisvoorbeeld in drie populaire talen:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
print(driver.title)
driver.quit()
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumTest {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://www.example.com");
System.out.println(driver.getTitle());
driver.quit();
}
}
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
class Program {
static void Main() {
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.example.com");
System.Console.WriteLine(driver.Title);
driver.Quit();
}
}
Selenium Grid is ontworpen voor parallelle testuitvoering op meerdere machines, browsers en besturingssystemen. Dit maakt het een krachtige tool voor testteams die willen schalen en sneller feedback willen krijgen.
Selenium Grid bestaat uit een hub en meerdere nodes:
Hub – ontvangt alle tests en verdeelt deze naar geschikte nodes.
Nodes – voeren de tests uit op specifieke browsers en besturingssystemen.
Deze architectuur maakt het mogelijk om tests te draaien op bijvoorbeeld Chrome onder Windows én Firefox onder Linux – tegelijkertijd.
Gebruik Selenium Grid wanneer:
Je tests wilt uitvoeren op meerdere browserconfiguraties.
Je tests sneller wilt uitvoeren door parallelisatie.
Je deel uitmaakt van een team dat een gedeelde testinfrastructuur gebruikt.
In Selenium Grid 3 werk je met één centrale hub en losse nodes die je handmatig configureert. Elke node is een afzonderlijke instantie die je koppelt aan de hub. Deze opstelling werkt goed, maar vereist onderhoud en handmatige configuratie.
Selenium Grid 4 introduceert een modernere architectuur met ondersteuning voor:
Docker en Kubernetes
Auto-scaling
Event-driven logging
GraphQL API
Daarnaast is er een verbeterde GUI en ondersteuning voor geclusterde infrastructuren, waardoor het eenvoudiger is om Grid op schaal te beheren.
Cloudgebaseerde oplossingen zoals Sauce Labs, BrowserStack en LambdaTest bieden Selenium Grid als dienst. Hiermee hoef je zelf geen infrastructuur te onderhouden. Deze platforms bieden duizenden browser- en OS-combinaties, en integreren vaak met populaire CI/CD tools zoals Jenkins en GitHub Actions.
Selenium 4 is de nieuwste stabiele versie van het framework en brengt verschillende verbeteringen met zich mee, zowel op functioneel als architecturaal niveau. Het sluit beter aan bij moderne webtechnologieën en vereenvoudigt de gebruikerservaring.
Selenium 4 bouwt voort op de kracht van WebDriver maar introduceert onder andere:
W3C WebDriver-standaard: Selenium 4 ondersteunt volledig de officiële W3C-specificatie. Dit betekent minder afhankelijkheden en een stabielere communicatie tussen WebDriver en browsers.
Verbeterde Selenium Grid: Een nieuwe, modulaire architectuur met ondersteuning voor Docker, auto-scaling en gedistribueerde logs.
Nieuwe devtools integratie: Ondersteuning voor Chrome DevTools Protocol (CDP), waarmee je netwerkverkeer kunt simuleren, performance kunt meten en console-logs kunt ophalen.
Verbeterde Selenium IDE: De IDE is opnieuw opgebouwd en ondersteunt nu ook debugging, control flow en parallelle testuitvoering.
Belangrijkste nieuwe features
Selenium 4 is volledig backward compatible met Selenium 3, waardoor overstappen relatief eenvoudig is.
Selenium is wereldwijd een van de populairste tools voor testautomatisering van webapplicaties. De doelgroep is breed: van startups tot multinationals, van QA-engineers tot full stack developers.
Typische gebruikers en toepassingen
QA-teams gebruiken Selenium voor regressietesten, functionele testen en cross-browser testen.
Ontwikkelaars integreren Selenium in hun CI/CD pipeline om automatisch tests te draaien bij elke codewijziging.
DevOps-teams combineren Selenium met tools als Jenkins, Docker en Kubernetes voor schaalbare en herhaalbare tests.
Voordat je met Selenium kunt werken, heb je nodig:
Kennis van een programmeertaal (bijv. Python, Java, C#)
Een geschikte browserdriver (zoals ChromeDriver)
Een testframework (optioneel maar aanbevolen, zoals JUnit of PyTest)
Een veelvoorkomende toepassing is het testen van een inlogformulier:
Open de loginpagina van de applicatie
Vul gebruikersnaam en wachtwoord in
Klik op de inloggen-knop
Controleer of de gebruiker wordt doorgestuurd naar het dashboard
Met Selenium kun je dit proces volledig automatiseren en in meerdere browsers tegelijk testen.
Selenium is een essentieel onderdeel van moderne teststrategieën, vooral in teams die werken met agile development en continuous integration/continuous delivery (CI/CD).
In een CI/CD-omgeving is snelheid en betrouwbaarheid cruciaal. Selenium wordt vaak geïntegreerd in pipelines via tools zoals Jenkins, GitHub Actions of GitLab CI. Hierdoor worden tests automatisch uitgevoerd bij elke wijziging in de code. Fouten worden vroegtijdig opgespoord en de kans op bugs in productie wordt kleiner.
Selenium werkt goed samen met andere testtools en frameworks. Denk aan:
JUnit/TestNG (Java)
PyTest/Unittest (Python)
SpecFlow/NUnit (C#)
In combinatie met rapportagetools zoals Allure of Extent Reports krijg je inzicht in testresultaten, foutmeldingen en trends.
Headless testing betekent dat je de browser zonder grafische interface draait. Dit is handig voor:
Snellere testuitvoering
Testen op servers zonder GUI
CI/CD omgevingen
Voorbeeld in Python:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = True
driver = webdriver.Chrome(options=options)
driver.get("https://www.example.com")
print(driver.title)
driver.quit()
Hoewel headless testing snel is, mist het de visuele aspecten van echte browsers. Denk aan renderingproblemen, JavaScript-gedrag of CSS-fouten. Daarom kiezen veel teams ervoor om Selenium te combineren met cloud-platforms zoals BrowserStack of Sauce Labs, die testen op echte apparaten mogelijk maken.
Selenium blijft zich ontwikkelen om gelijke tred te houden met moderne webtechnologieën. De focus ligt op:
Betere ondersteuning voor moderne webframeworks zoals React, Vue en Angular
Verbeterde teststabiliteit via native events en betere synchronisatie
Integratie met AI en machine learning om zelfherstellende tests mogelijk te maken
Daarnaast ontstaan er alternatieven zoals Playwright en Cypress, die sommige beperkingen van Selenium proberen op te lossen. Toch blijft Selenium door zijn open-source karakter, brede taalondersteuning en actieve community een vaste waarde in de markt.
Selenium is al jaren de standaard in browserautomatisering, en dat is niet zonder reden. Het biedt flexibiliteit, ondersteuning voor meerdere programmeertalen en een krachtige WebDriver-architectuur die geschikt is voor elk testscenario.
Of je nu een enkele test draait of een geautomatiseerde pipeline opzet in een gedistribueerde omgeving, Selenium biedt de tools en mogelijkheden om betrouwbare en schaalbare testen op te zetten. Dankzij de continue doorontwikkeling en de community eromheen blijft Selenium ook in de toekomst een betrouwbare keuze voor testautomatisering van webapplicaties.
Selenium is een open-source framework waarmee je browsergedrag kunt automatiseren, vooral voor het testen van webapplicaties.
Selenium IDE is een recorder voor eenvoudige tests. WebDriver is de kern voor programmeerbare testautomatisering. Grid laat je tests parallel draaien op meerdere apparaten.
Niet direct. Voor mobiele testing gebruik je tools als Appium, die wel compatibel zijn met Selenium WebDriver.
Selenium ondersteunt o.a. Chrome, Firefox, Safari, Edge en Opera, zowel lokaal als via cloud-platforms.
Ja, Selenium is volledig open-source en gratis.
Alternatieven zijn onder andere Cypress, Playwright en TestCafe, elk met hun eigen focus en voordelen.