Een volledig accountregistratieproces laat de grenzen duidelijk zien: formulieren, datumkeuze en e-mailcodes zijn te automatiseren, maar video-selfieverificatie stopt de flow. De kosten per laag begrijpen is realistischer dan volledige automatisering nastreven.
Wie met browserautomatisering werkt, begint vaak met een optimistische gedachte: als je een proces maar fijn genoeg opdeelt, moet uiteindelijk elke stap te automatiseren zijn.
Een volledige run laat iets anders zien. De eerste stappen kunnen opvallend soepel verlopen, waarna het proces aan het einde tegen een harde grens loopt. Een test met accountregistratie was typerend: formulierinvulling, datumkeuze, het ophalen van een verificatiecode en beveiligingscontroles werkten allemaal binnen een minuut. Ongeveer 85% van de flow was geautomatiseerd. Het resterende deel was een video-selfieverificatie die een echte persoon voor de camera vereist.
Deel je deze flow op naar kosten, dan worden de grenzen veel duidelijker.

Deterministische acties op één pagina zijn meestal betrouwbaar met scripts
Velden zoals naam, e-mail, wachtwoord en geboortedatum vormen de meest stabiele laag. Gesimuleerde toetsenbordinvoer met een korte pauze tussen de velden kost voor de hele stap ongeveer vijf seconden.
De belangrijkste valkuil is elementselectie. Veel moderne frontends maken invoervelden zonder semantisch name-attribuut, waardoor ze via index of structuur moeten worden gevonden. Dat is niet elegant, maar kan in automatisering juist robuust zijn.
Dit is de eerste taakcategorie: vaste paginastructuur, duidelijke actie en voorspelbaar resultaat. Binnen dit bereik is de slagingskans van scripts doorgaans hoog.
Bij aangepaste componenten wordt de paginastructuur zelf een kostenfactor
Keuzelijsten voor bijvoorbeeld geboortedatum of geslacht kosten vaak de meeste tijd.
Wat op een normaal selectiemenu lijkt, kan onder de motorkap een aangepaste component met toegankelijkheidsrollen zijn. Standaardmethoden vallen dan één voor één uit: de normale selectiemethode werkt niet, zoeken op toegankelijkheidslabel werkt niet en rechtstreeks klikken op het doelelement evenmin. De stabiele aanpak is vaak de menselijke volgorde exact nabootsen: het menu openen, wachten tot opties zijn gerenderd, het doel op tekst vinden en erop klikken.
De code kan in seconden zijn geschreven, terwijl debugging uren kost. De grens wordt niet alleen bepaald door technische vaardigheid, maar ook door hoe goed de paginastructuur meewerkt. Bij aangepaste componenten bespaart het vaak tijd om de standaardaanpak vroeg los te laten.
Status over meerdere sites behouden is waar de kosten zichtbaar oplopen
Als een verificatiecode per e-mail komt, is de logica eenvoudig: open de inbox, zoek het nieuwste bericht, haal de cijfercode eruit en vul die in. De hele stap duurt ongeveer 20 seconden.
De klassieke fout is simpel: als het script een oudere mail leest, is de code verkeerd. Daarom moet het nieuwste bericht op tijd worden gekozen.
Na een geslaagde controle sturen veel platforms door naar een extra controlepagina en versturen ze nog een code. De verwerkingslogica kan opnieuw worden gebruikt, maar de vorige codewaarde niet.
De echte moeilijkheid zit in twee sites en twee sessies. De e-maillogin moet actief blijven, de platformsessie moet tussen stappen behouden blijven en proxy-IP, tijdzone en taal moeten bij de omgeving passen. Zo stapelen de kosten van cross-site statusbeheer zich op. Elke stap afzonderlijk is eenvoudig, maar gekoppeld neemt het uitvalpercentage duidelijk toe.
Het script is hier alleen de uitvoerder; het bepaalt niet met welke identiteit de website de browser ziet. Device fingerprinting en de match tussen IP en omgeving zijn signalen die het platform kan beoordelen. Daarom behandelen teams met meerdere accounts omgevingsisolatie vaak als een aparte laag: elke omgeving krijgt een eigen fingerprint en IP. Tools zoals PurpleMark leveren die omgevingslaag, terwijl het script de handelingen daarbinnen uitvoert.
Taken die begrip van de pagina vereisen zijn lastig vol te houden met alleen scripts
Verderop verandert het type probleem.
Als tekst of structuur varieert per account, regio of gefaseerd experiment, vallen hardgecodeerde selectors groepsgewijs uit. Dan zijn er twee routes: alle mogelijke vertakkingen in code stapelen en het onderhoud steeds moeilijker maken, of de stap overlaten aan een model dat de semantiek van de pagina kan begrijpen. De betekenis van een melding of knop is voor een mens vanzelfsprekend, maar voor een selector ruis.
Als het platform actief verandert, blijven pure scripts opnieuw breken
Een andere kostenpost wordt gemakkelijk vergeten: de andere kant beweegt mee.
Platforms kijken niet alleen of een formulier kan worden ingevuld. Ze kunnen beoordelen of een device fingerprint normaal lijkt, of IP en omgeving bij elkaar passen, of gedrag menselijk oogt en of er tekenen van bulkgebruik zijn. Eén update van risicocontroles kan selectors of gedragspatronen die gisteren werkten opnieuw laten aanpassen.
Een pure scriptoplossing bereikt daardoor nooit echt een definitieve eindstatus. Het is geen eenmalige oplevering, maar doorlopend onderhoud.
Gezichtsverificatie is niet alleen een technisch probleem
De laatste stap vereist een echte persoon voor de camera. Daar stopt de automatisering.
Een script kan formulieren invullen, knoppen aanklikken, e-mail lezen en codes invoeren, maar kan niet legitiem een handeling uitvoeren die biometrische kenmerken van een persoon vereist. Dat ligt niet alleen aan technische beperkingen: het doel van de controle is juist bevestigen dat er een echte persoon voor het scherm zit, wat rechtstreeks botst met automatisering. Oplossingen die automatische gezichtsverificatie beloven, maken vaak gebruik van vervalste biometrische informatie en kunnen compliance- of juridische risico's veroorzaken die veel groter zijn dan de opbrengst.
Zelfs als een stap technisch uitvoerbaar is, blijven de gebruiksvoorwaarden van het platform gelden. Veel platforms beperken geautomatiseerde registratie expliciet. Dat is een regelkwestie, geen technische capaciteitskwestie.
Kies tools per laag in plaats van volledige automatisering na te jagen
Zodra de flow in lagen is verdeeld, wordt de keuze veel duidelijker:
- Gebruik scripts voor vaste pagina's en deterministische acties; dat is meestal de goedkoopste en stabielste optie.
- Als login- en sessiestatus over meerdere sites moeten blijven bestaan, beheer de browseromgeving als aparte laag en meng omgevingsproblemen niet met scriptdebugging.
- Als de structuur varieert en de volgende actie semantisch begrip vereist, kan een model praktischer zijn dan steeds meer codevertakkingen.
- Als een stap een echte persoon vereist of expliciet door de gebruiksvoorwaarden wordt verboden, forceer dan geen end-to-end automatisering.
Doorloop eerst het hele proces handmatig om harde blokkades te vinden en bepaal daarna hoeveel ontwikkeling zinvol is. Automatisering loont vooral bij herhaalbare, deterministische handelingen die geen oordeel vereisen.


