Stap voor stap een WhatsApp-bot automatiseren met Selenium

Laatste update: 04/12/2025
Auteur: Isaac
  • Automatisering met Selenium maakt controle mogelijk WhatsApp Web alsof het een echte gebruiker is, die vooraf gedefinieerde berichten in bulk naar contactpersonen verstuurt.
  • Een goed OOP-ontwerp (bijvoorbeeld met een WhatsAppBot-klasse) vergemakkelijkt de inkapseling van logica, hergebruik van code en botonderhoud.
  • De betrouwbaarheid van de bot hangt af van de juiste selectoren (XPATH, CSS), het beheer van de laadtijden en het actief houden van de WhatsApp-websessie.
  • Python C# kan met Selenium worden gebruikt om het verzenden van berichten te integreren in grotere projecten of externe automatiseringsplatforms.

WhatsApp-webautomatisering met Selenium

Heb je ooit gedacht: " Ik wou dat WhatsApp bestellingen , boodschappenlijsten of herinneringen automatisch kon beheren, zodat ik er zelf niets meer aan hoef te doen?", dan ben je hier aan het juiste adres. Steeds meer ontwikkelaars en nieuwsgierige mensen maken hun eigen bots voor WhatsApp Web met Selenium, en het is vrij gebruikelijk om problemen tegen te komen zoals dat het script aangeeft dat het bericht is verzonden... maar er niets in het gesprek verschijnt.

In de volgende alinea's laten we zien hoe je een WhatsApp-bot automatiseert met Selenium , de praktische toepassingen ervan, hoe een typisch project is opgebouwd, veelvoorkomende fouten die ervoor kunnen zorgen dat een bericht wel in de terminal wordt "verzonden" maar de chat niet bereikt, en hoe je stap voor stap je eigen bot bouwt in zowel Python als C#. Dit alles wordt uitgelegd in duidelijke, begrijpelijke taal, met praktische tips zodat je het concept kunt aanpassen aan je eigen behoeften.

Wat is Selenium en waarom is het handig voor het automatiseren van WhatsApp Web?

Selenium is een tool voor browserautomatisering waarmee je programmatisch kunt bepalen wat een menselijke gebruiker zou doen: een pagina openen, op knoppen klikken, tekst invoegen, informatie lezen, tussen secties navigeren en in het algemeen interacties met een website simuleren die in de praktijk normaal gesproken plaatsvinden. Het is enorm populair in de wereld van softwaretesten, maar wordt ook veel gebruikt om repetitieve taken op websites te automatiseren.

Bij het werken met Selenium WebDriver fungeert je script als een 'afstandsbediening' voor de browser. Je specificeert naar welke URL je wilt gaan, welke elementen je wilt lokaliseren (met behulp van XPath, CSS-selectors, ID's, namen, enz.) en welke actie je erop wilt uitvoeren: tekst schrijven, klikken, formulieren verzenden, de pagina scrollen of gegevens ophalen. In het geval van WhatsApp Web wordt deze mogelijkheid gebruikt om het verzenden van berichten, het beheren van contacten of zelfs het verifiëren van registratiecodes te automatiseren.

Toegepast op WhatsApp Web, stelt Selenium je in staat om bots te creëren die vooraf gedefinieerde berichten naar specifieke contacten sturen , zonder dat je je telefoon hoeft aan te raken. De browser opent, laadt web.whatsapp.com, je logt in (meestal door de QR-code de eerste keer te scannen) en vanaf dat moment kan het programma chats openen, berichten schrijven, op de verzendknop drukken en dit proces herhalen met zoveel contacten als je nodig hebt.

Deze aanpak heeft een belangrijk voordeel: je bent niet afhankelijk van officiële API's of niet-ondersteunde externe bibliotheken , omdat je de webversie automatiseert zoals je die handmatig zou gebruiken. Je moet echter wel rekening houden met mogelijke wijzigingen in de WhatsApp Web-interface, aangezien wijzigingen in de selectors of de HTML-structuur ervoor kunnen zorgen dat de bot niet meer werkt totdat je de code hebt bijgewerkt; zie " WhatsApp Web laadt geen berichten" voor veelvoorkomende oplossingen.

Belangrijkste toepassingen van een WhatsApp-bot met Selenium

Als je eenmaal begrijpt hoe Selenium de browser aanstuurt, opent zich een enorm scala aan mogelijkheden. Een simpele bot voor WhatsApp Web begint misschien als een proof of concept, maar het wordt al snel een handig hulpmiddel voor het automatiseren van dagelijkse werkprocessen.

  Stapsgewijze handleiding voor het maken van tabellen in HTML-formaat

Selenium is een standaard in de wereld van geautomatiseerd testen van webapplicaties . In de context van WhatsApp kun je het gebruiken om te simuleren hoe een gebruiker met de interface interacteert: een chat openen, berichten typen en verzenden, controleren of bepaalde meldingen op het scherm verschijnen, of ervoor zorgen dat communicatiestromen naar behoren werken bij de integratie van WhatsApp met andere systemen.

Een ander veelvoorkomend gebruik is het automatiseren van repetitieve taken . Stel je voor dat je elke dag herinneringen moet sturen naar een groep klanten, afspraken moet bevestigen of standaardinformatie moet versturen. In plaats van dit steeds handmatig te typen, opent de bot het gesprek met elke contactpersoon en stuurt een reeks vooraf gedefinieerde berichten met de door jou gekozen informatie. Afhankelijk van de situatie kun je in WhatsApp Business ook gebruikmaken van geautomatiseerde antwoorden.

Hetzelfde patroon kan worden gebruikt om geautomatiseerde communicatie- en marketingsystemen te bouwen . Je kunt een contactenlijst beheren en promotionele berichten, statusupdates of interne bedrijfsnotificaties inplannen. Hoewel WhatsApp strikte regels hanteert, gedraagt ​​de bot zich technisch gezien als een menselijke gebruiker, alleen dan geautomatiseerd. Als je op zoek bent naar zakelijke alternatieven, overweeg dan automatisering met de WhatsApp Business API.

Tot slot mogen we het aspect van dataverzameling niet vergeten . Met Selenium kun je pagina-inhoud lezen, berichttekst extraheren, vastleggen wie wanneer reageert, of dit zelfs combineren met externe analyses. Hoewel het typische voorbeeld zich richt op het versturen van berichten, kun je met dezelfde tool ook websites van derden bezoeken, informatie verzamelen en deze in je script verwerken.

Typische structuur van een WhatsApp-bot met Selenium in Python

Eenvoudige Python-voorbeelden voor AI met Scikit-Learn, TensorFlow en PyTorch.

Een veelvoorkomend ontwerp voor dit type Python-project is gebaseerd op objectgeoriënteerd programmeren (OOP) , waarbij alle logica voor interactie met WhatsApp Web in een specifieke klasse wordt ondergebracht. Dit maakt de code overzichtelijker, modulairder en gemakkelijker te onderhouden.

De gebruikelijke aanpak is om een ​​klasse te definiëren, bijvoorbeeld WhatsAppBot , die de browserconfiguratie, het opstarten van Selenium , het openen van WhatsApp Web en de methoden voor het verzenden van berichten naar je contacten afhandelt. Dit verbergt de technische details binnen de klasse, en iedereen die de bot gebruikt, hoeft alleen maar een instantie aan te maken en de openbare methoden aan te roepen.

Binnen die klasse valt vaak een methode op zoals `send_messages` (of iets dergelijks), waarvan de belangrijkste functie is om door een lijst met contacten te itereren. Voor elk contact wordt de juiste WhatsApp Web-URL gegenereerd of geopend, het berichtinvoerveld wordt gedetecteerd met behulp van een XPath of andere selector, de tekst wordt ingevoerd en het indrukken van de Enter-toets of het klikken op de verzendknop wordt gesimuleerd.

De structuur wordt voltooid met een hoofdblok van het type `if __name__ == "__main__"` , waarin de WhatsAppBot-klasse wordt geïnstantieerd en de methode wordt aangeroepen die door de contactenlijst itereert. Dankzij deze organisatie kan het script worden hergebruikt in andere projecten of worden geïntegreerd met grotere systemen zonder dat de interne logica hoeft te worden aangepast.

Dit ontwerp weerspiegelt duidelijk de principes van OOP: abstractie, inkapseling en modulariteit . Je abstraheert het concept van een "WhatsApp-bot" tot één enkele klasse, encapsuleert de browser- en Selenium-details in private of interne methoden, en organiseert de code in herbruikbare onderdelen, zodat je de verzendlogica, berichten of contactbron kunt aanpassen zonder alles opnieuw te hoeven schrijven.

  Hoe je gemakkelijk een wedstrijd of winactie kunt winnen via Instagram

Uitvoeringsstroom: hoe de bot stap voor stap werkt

Achter een script dat er simpel uitziet, schuilt een zeer duidelijke uitvoeringsstroom die het waard is om te begrijpen, vooral wanneer er iets misgaat (bijvoorbeeld wanneer de console aangeeft dat het bericht is verzonden, maar er geen bericht in de app verschijnt).

Het begint allemaal met het aanmaken van een instantie van WhatsAppBot (of de klasse die je hebt gedefinieerd). In de constructor wordt Selenium WebDriver geïnitialiseerd, de browser geconfigureerd (meestal Chrome, maar je kunt ook andere browsers gebruiken) en de benodigde opties geopend: venstergrootte, gebruikersprofiel, impliciete time-out, enzovoort.

Zodra de browser gereed is, wordt de methode aangeroepen die berichten naar de contactenlijst verzendt . Voor elk contact opent de bot de WhatsApp Web-URL die aan dat nummer is gekoppeld of opent de chat via een interne zoekfunctie. Op dit punt is het cruciaal dat u al bent ingelogd op WhatsApp Web; als het uw eerste keer is, moet u de QR-code handmatig scannen, maar daarna kunt u de sessie hergebruiken zolang u de browser of het gebruikersprofiel niet sluit. Als u geopende sessies wilt bekijken of sluiten, raadpleeg dan ' Geopende sessies bekijken en sluiten '.

De volgende stap is het lokaliseren van het berichtinvoerelement . Dit gebeurt meestal met behulp van een specifieke XPath of een CSS-selector. Zodra het element is gevonden, typt de bot de vooraf gedefinieerde tekst (of meerdere teksten) en simuleert de verzendactie, door op de Enter-toets te drukken of op de verzendknop te klikken. Dit proces wordt herhaald voor alle contacten in de lijst.

Tijdens de uitvoering bevat de code foutafhandeling voor het geval het tekstvak niet wordt gevonden, de pagina te langzaam laadt of er een probleem is met de browser. Aan het einde van het proces worden de browser en het WebDriver-exemplaar gesloten, waardoor resources worden vrijgemaakt en alles gereed is voor toekomstige uitvoeringen.

Technische vereisten voor het automatiseren van WhatsApp Web met Python en Selenium

Om een ​​functioneel project op te zetten en te laten draaien, moet je voldoen aan een aantal basisvereisten voor de omgeving . Gelukkig zijn de meeste eenvoudig te configureren en hoeven ze maar één keer te worden ingesteld.

Allereerst moet Python 3.x op uw systeem geïnstalleerd zijn. Elke moderne versie werkt doorgaans goed met Selenium, hoewel het raadzaam is om relatief recent te blijven om incompatibiliteitsproblemen met afhankelijkheden te voorkomen.

De tweede stap is het installeren van de Selenium-bibliotheek met pip. Voer in de terminal of commandoregel het commando `pip install selenium` uit . Hiermee wordt het pakket gedownload en geïnstalleerd dat nodig is om de browser vanuit Python te besturen.

Naast de bibliotheek heb je ook de WebDriver nodig die bij je browser hoort (bijvoorbeeld ChromeDriver als je Google Chrome gebruikt ). Dit bestand fungeert als tussenpersoon tussen je Python-script en de browser, waardoor Selenium instructies kan verzenden en reacties kan ontvangen.

Tot slot is het belangrijk om een ​​stabiele internetverbinding en toegang tot WhatsApp Web te hebben. Normaal gesproken opent je browser de eerste keer dat je de bot gebruikt web.whatsapp.com en moet je de QR-code scannen met je telefoon. Zodra je bent ingelogd, kan de bot binnen die sessie werken zolang deze actief blijft.

Algemene stappen voor het gebruik van een WhatsApp-automatiseringsbestand met Selenium

Zodra de omgeving is voorbereid, verloopt het gebruik van een automatiseringsscript doorgaans volgens een vrij standaard stappenplan , ongeacht of u de code uit een repository hebt gehaald of deze zelf hebt geschreven.

  Hoe verwijderde bestanden herstellen met Windows File Recovery CLI

De eerste stap is het downloaden van het broncodebestand of het klonen van de repository waar het project zich bevindt. In veel gevallen vind je een hoofdbestand zoals main.py, dat het startpunt van de applicatie vormt.

Open vervolgens je favoriete editor of IDE (VS Code, PyCharm, enz.) en maak, indien nodig, het .py-bestand aan waarin je de code wilt kopiëren. Als het bestand al in een repository staat, open het dan gewoon vanuit de IDE om het naar wens aan te passen.

In het script vind je een gedeelte waar de contactenlijst is gedefinieerd . Meestal heeft deze een structuur zoals `contacts =`. Daar moet je de personen toevoegen naar wie je berichten wilt sturen, met inachtneming van het formaat dat door de oorspronkelijke ontwikkelaar is gedefinieerd.

Je krijgt ook een lijst of blok met vooraf gedefinieerde berichten die de bot zal versturen. Het is een goed idee om deze teksten aan te passen aan jouw specifieke situatie: orderbevestigingen, leveringsmeldingen, herinneringen, enzovoort. Door deze lijst te wijzigen, kun je eenvoudig de inhoud variëren die naar alle contacten wordt verzonden.

Nadat je je contacten en berichten hebt geconfigureerd, sla je het bestand op en voer je het uit vanuit de terminal of de IDE zelf . Je browser wordt geopend, WhatsApp Web wordt geladen en nadat je hebt gecontroleerd of je bent ingelogd, zie je hoe de bot automatisch berichten naar elk contact in de lijst verzendt.

Voorbeeld Python-project: main.py en aanpassing

Veel repositories die laten zien hoe je WhatsApp Web kunt automatiseren met Selenium, zijn gestructureerd rond een hoofdbestand, meestal main.py genoemd , dat de basislogica van de bot bevat. Je kunt deze basis vervolgens aanpassen en verbeteren naar eigen behoefte.

Bij dit soort projecten is het hoofdbestand meestal verantwoordelijk voor het laden van de contactenlijst , het initialiseren van de bot (de instantie van de klasse die Selenium aanstuurt) en het aanroepen van de methode die de berichten verzendt. De contactenlijst kan direct in het script worden opgenomen of uit een extern bestand komen, maar in veel voorbeelden wordt deze voor de eenvoud direct in de code opgenomen.

Als je het gedrag wilt wijzigen, kun je main.py bewerken om contacten toe te voegen of te verwijderen , de te verzenden teksten aan te passen of zelfs nieuwe functies toe te voegen, zoals het bijhouden in een logboek welke berichten succesvol zijn verzonden en op welk tijdstip, of het beheren van wachtlijsten voor nieuwe pogingen.

Deze aanpak maakt experimenteren heel eenvoudig: je kunt beginnen met een minimale bot die slechts één of twee berichten naar een paar testnummers stuurt, en vervolgens de complexiteit van de logica geleidelijk verhogen. Naarmate je meer vertrouwen krijgt, kun je de bot integreren met databases , externe systemen of API's van derden die automatisch berichtinhoud genereren; zo kan het bijvoorbeeld handig zijn om te leren hoe je een chatbot maakt met de ChatGPT API om dynamische antwoorden te genereren.

Bovendien moedigt het feit dat veel projecten open source zijn iedereen aan om bij te dragen met verbeteringen, bugfixes of nieuwe functies . Als je een robuustere manier vindt om elementen te selecteren, wachttijden beter te beheren of ondersteuning voor meer browsers toe te voegen, kun je die wijzigingen delen om andere ontwikkelaars te helpen.

Wacht op bericht. Dit kan even duren op WhatsApp.
Gerelateerd artikel:
"Wachten op bericht. Dit kan even duren" op WhatsApp: wat het betekent en hoe je het kunt oplossen