Tuple Logo
selenium

SHARE

Selenium

Wat is Selenium?

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.

De geschiedenis van Selenium

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.

De belangrijkste onderdelen van Selenium

Selenium is niet één enkel programma, maar een verzameling tools die samenwerken. Elk onderdeel heeft een specifieke functie binnen het testproces:

Selenium IDE

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 (Remote Control)

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

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:

Selenium WebDriver

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.

Wanneer gebruik je Selenium WebDriver?

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.

Architectuur van Selenium WebDriver

De architectuur van Selenium WebDriver bestaat uit vier lagen:

  1. Testscript – geschreven in een programmeertaal zoals Python of Java.

  2. Language Bindings – de API die jouw testscript vertaalt naar WebDriver-oproepen.

  3. Browser Drivers – zoals ChromeDriver of GeckoDriver, die commando’s omzetten naar browseracties.

  4. Browser – de daadwerkelijke applicatie waarin de test wordt uitgevoerd.

Deze directe communicatie zorgt voor betere prestaties, minder vertraging en nauwkeurigere interacties met webpagina's.

Ondersteunde browsers

Selenium WebDriver ondersteunt onder andere:

Daarnaast kunnen ook mobiele browsers op Android en iOS via Appium worden aangestuurd.

Voorbeeldcode

Hieronder een basisvoorbeeld in drie populaire talen:

Python

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.example.com")
print(driver.title)
driver.quit()

Java

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();
    }
}

C#

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

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.

Wat is Selenium Grid?

Selenium Grid bestaat uit een hub en meerdere nodes:

Deze architectuur maakt het mogelijk om tests te draaien op bijvoorbeeld Chrome onder Windows én Firefox onder Linux – tegelijkertijd.

Wanneer gebruik je Selenium Grid?

Gebruik Selenium Grid wanneer:

Architectuur van Selenium Grid 3

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.

Architectuur van Selenium Grid 4

Selenium Grid 4 introduceert een modernere architectuur met ondersteuning voor:

Daarnaast is er een verbeterde GUI en ondersteuning voor geclusterde infrastructuren, waardoor het eenvoudiger is om Grid op schaal te beheren.

Wat is Selenium Grid op de cloud?

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.

Werken met Selenium 4

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.

Wat is er nieuw in Selenium 4?

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.

Wie gebruikt Selenium en waarom

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

Voorwaarden om met Selenium te beginnen

Voordat je met Selenium kunt werken, heb je nodig:

Voorbeeld van een testscenario

Een veelvoorkomende toepassing is het testen van een inlogformulier:

  1. Open de loginpagina van de applicatie

  2. Vul gebruikersnaam en wachtwoord in

  3. Klik op de inloggen-knop

  4. Controleer of de gebruiker wordt doorgestuurd naar het dashboard

Met Selenium kun je dit proces volledig automatiseren en in meerdere browsers tegelijk testen.

Selenium en testautomatisering in de praktijk

Selenium is een essentieel onderdeel van moderne teststrategieën, vooral in teams die werken met agile development en continuous integration/continuous delivery (CI/CD).

Hoe Selenium past binnen 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:

In combinatie met rapportagetools zoals Allure of Extent Reports krijg je inzicht in testresultaten, foutmeldingen en trends.

Headless testing met Selenium

Headless testing betekent dat je de browser zonder grafische interface draait. Dit is handig voor:

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()

Waarom testen op echte apparaten belangrijk blijft

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.

Toekomst van Selenium

Selenium blijft zich ontwikkelen om gelijke tred te houden met moderne webtechnologieën. De focus ligt op:

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.

Waarom Selenium nog steeds relevant is

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.

Verschillen tussen Selenium 3 en Selenium 4

Veelgestelde vragen
Wat is Selenium precies?

Selenium is een open-source framework waarmee je browsergedrag kunt automatiseren, vooral voor het testen van webapplicaties.


Wat is het verschil tussen Selenium IDE, WebDriver en Grid?

Selenium IDE is een recorder voor eenvoudige tests. WebDriver is de kern voor programmeerbare testautomatisering. Grid laat je tests parallel draaien op meerdere apparaten.


Is Selenium geschikt voor mobiele applicaties?

Niet direct. Voor mobiele testing gebruik je tools als Appium, die wel compatibel zijn met Selenium WebDriver.


Welke browsers worden ondersteund door Selenium?

Selenium ondersteunt o.a. Chrome, Firefox, Safari, Edge en Opera, zowel lokaal als via cloud-platforms.


Is Selenium gratis te gebruiken?

Ja, Selenium is volledig open-source en gratis.


Wat zijn alternatieven voor Selenium?

Alternatieven zijn onder andere Cypress, Playwright en TestCafe, elk met hun eigen focus en voordelen.


Ook interessant

Nieuwsgierig geworden?

Wij vertellen je graag meer!

Contact opnemen
Tuple Logo
Veenendaal (HQ)
De Smalle Zijde 3-05, 3903 LL Veenendaal
info@tuple.nl‭+31 318 24 01 64‬
Snel navigeren
Succesverhalen