Wenn es darum geht, Arbeiten mit einem Browser zu automatisieren, dann kommt man mit sogenannten Headless Browsern in Berührung. Hierbei geht es darum, die Fähigkeiten eines Browsers nicht mit Maus und Tastatur zu nutzen, sondern die Bedienung mit Skripten fernzusteuern. In diesem Bereich gab es längere Zeit nur wenig mächtige Alternativen. Mit PhantomJS haben wir den de-facto Standard verwendet. Dieser wird nun allerdings nicht mehr weiterentwickelt und so wurde es Zeit für etwas Neues.
Mittlerweile gibt es eine ganze Reihe von Softwareprojekten zur Steuerung von Browsern ohne UI. Wir haben nun auf das von Google bereitgestellte Puppeteer umgestellt. Dies ist eine API für den Browser Headless Chrome bzw. Headless Chromium. Eine Einführung hierfür lässt sich hier anschauen.
Nach einer kurzen Eingewöhnung in NodeJS und die Puppeteer Funktionen lässt sich sagen, dass die Arbeit mit diesem Tool mehr als intuitiv abläuft. Darüber hinaus scheint es auch weniger Ressourcen in Anspruch zu nehmen als PhantomJS. Der größte Vorteil liegt allerdings darin, dass nun wesentlich neuere Chrome-Versionen eingesetzt werden können. Dies ist insbesondere beim automatischen Erstellen von Screenshots hilfreich, wenn die zu Grunde liegende Seite neuere Technologien einsetzt.