Wie ich Chrome Headless / Puppeteer gelernt habe

Über mich

Hallo alle. Ich heiße Matías Sklar, bin 41 Jahre alt und komme aus Argentinien.
Ich bin ein Backend-Entwickler, der sich auf automatisierte Prozesse spezialisiert hat.
Meine Stärke ist der Build-Prozess, der ein hohes Datenvolumen bewältigen muss.
Ich suche nach neuen freiberuflichen Projekten, in die ich mich einbringen kann, und bringe meine Erfahrung in verschiedenen Szenarien ein

Warum ich Chrome Headless / Puppeteer lernen wollte

Der Grund für das Erlernen von Chrome Headless / Puppeteer bestand darin, einige automatisierte Tests der Navigation bestimmter Websites durchzuführen.
In der Firma, in der ich heute arbeite, hatten wir eine frühere Version dieses Tests mit PhantomJs, aber dieses Projekt ist derzeit veraltet und wir wissen, dass einige seiner Entwickler zu Chrome Headless wechseln.
Nach einigen anfänglichen Tests entschieden wir, dass dies eine notwendige Änderung war.

Wie ich an das Erlernen von Chrome Headless / Puppeteer herangegangen bin

Der Lernprozess war eine Teamarbeit. Mein Team besteht aus einem anderen PHP Senior Developer und mir selbst.
Mit der Entscheidung, zu Chrome Headless zu wechseln, beginnen wir, verschiedene Möglichkeiten zur Verwendung dieses Tools zu untersuchen.
Es gibt hauptsächlich zwei Möglichkeiten, damit zu arbeiten: Selenium + ChromeDriver oder Puppeteer.
Wir haben unseren ersten Test mit Puppeteer durchgeführt, das wie ein node.js-Modul installiert werden kann, und wir stellen fest, dass es einfach war, auf der Website zu navigieren, die wir testen müssen.
Ich hatte vorher noch nie ein Projekt mit node.js entwickelt, also musste ich etwas über die Konzepte „await“ und „Promise“ lernen, aber da ich am vorherigen Phantomjs-Projekt unserer Firma teilgenommen hatte, war das kein ernstes Problem.

Herausforderungen, denen ich mich gestellt habe

Die erste Herausforderung bestand darin, etwas über die Struktur von node.js zu lernen.
Glücklicherweise gibt es viele Dokumentationen und Beispiele für einfache Skripte, und wir konnten schnell vorankommen.
Die Verbindung von Erwarten und Versprechen sind die großen Konzepte, die wir verstehen müssen.
Die andere Herausforderung besteht darin, alle Zeitüberschreitungen korrekt abzufangen, wenn ein Netzwerkproblem auftritt oder wenn ein Element der Website, das wir testen müssen, nicht vorhanden ist.
Und schließlich sollten Sie sich vorerst bewusst sein, dass neue Registerkarten im Chrome-Browser geöffnet werden, wenn Sie auf einen Link klicken.
Ich muss mich lehnen, wie man diese Dinge am besten debuggt. Manchmal reicht es aus, die “Ausnahmemeldung” zu lesen. In anderen Fällen schreibe ich den kompletten HTML-Code der Seite in ein Dateiprotokoll. Und oft mache ich einen Screenshot, um sicherzugehen, dass der Browser auf der Seite navigiert, die ich dachte.

Die zentralen Thesen

Die Schlüssel dieses Projektes sind:
1.- Haben Sie keine Angst, wenn die von Ihnen verwendete Technologie veraltet ist (Phantomjs), Sie können immer eine neue Technologie finden, um sie zu ersetzen (oder Sie können Ihre eigene bauen!!)
2.- Die gute Teamarbeit ist der Schlüssel zur Beschleunigung des Lernprozesses
3.- Wenn Sie zwischen 2 Lernoptionen wählen müssen, müssen Sie die Dokumentation berücksichtigen, die Sie finden könnten
4.- Ich bin Entwickler. Die technologischen Herausforderungen sind die Dinge, die ich gerne mache.

Tipps und Ratschläge

Es war eine gute und erfolgreiche Erfahrung, weil wir etwas ohne Vorwissen beginnen und einen guten Prozess aufbauen konnten, um die uns zugewiesene Aufgabe zu erfüllen.
Ich freue mich, an diesem Projekt beteiligt zu sein.

Abschließende Gedanken und nächste Schritte

Die nächsten Schritte in diesem Projekt bestehen darin, ein Bedienfeld mit besseren Warnungen zu erstellen.
Dazu muss ich meinen Roboter über mehrere APIs oder andere Batch-Prozesse in viele andere Prozesse integrieren.

Bis zum nächsten Post!!

Similar Posts

Leave a Reply

Your email address will not be published.