- Selenium war de facto der Standard für Web-Automatisierung/-Tests
- Einfach einzurichten und unterstützt fast alle Programmiersprachen
- Es reicht aus, aber eben auch nur gerade so
- Auf Websites mit modernen JavaScript-Frameworks funktioniert es nicht besonders gut (Angular, React, ..)
→ Das heißt nicht, dass es gar nicht funktioniert. Nur eben nicht besonders gut
- Es heißt zwar, die Dokumentation sei gut, aber sobald man in der Praxis auch nur leicht vom Hauptpfad abweicht, ist es schwer, passende Beispiele zu finden
- Ich habe versucht, Dinge wie Chai, Mocha und Cypress zu verwenden, aber deren Konfiguration ist völlig anders, und für Python-Entwickler ist das nicht einfach
- Es wurden Dutzende Selenium-Alternativen entwickelt, aber die meisten sind nach ein paar Jahren wieder verschwunden
Enter Playwright
- Hervorragend, und wichtig ist außerdem, dass es von Microsoft entwickelt wird. Es wird daher wohl lange unterstützt werden
- Das Killer-Feature von Playwright ist die „automatische Testerstellung“
- Man öffnet den Browser und führt die Schritte nacheinander aus, dann wird das aufgezeichnet und in ein Python-Skript umgewandelt
- Das erspart die Mühe, in Selenium Dinge wie XPath zu finden
- Die so gespeicherten Schritte lassen sich fast ohne Änderungen direkt ausführen
- Ein weiterer Vorteil ist, dass man den Ausführungsprozess als Video speichern und ansehen kann
- Der einzige Nachteil ist, dass es noch neu ist. Es gibt noch viele Bugs und die Dokumentation ist nicht besonders gut
- Insgesamt betrachtet würde ich aber für alle neuen Projekte Playwright wählen
4 Kommentare
Aus der Perspektive von jemandem, der zunächst
puppeteergenutzt und dann das vollständige Onboarding auf Playwright erfolgreich geschafft hat, denke ich, dass allein die Codegen-Funktion von Playwright den Umstieg lohnenswert macht.Aus der Perspektive von jemandem, der lange nur Puppeteer und nur Node verwendet hat, ist der Umstieg auf Playwright nicht gerade leicht.
Anstatt nur darüber nachzudenken, bestehende Projekte zu migrieren, wäre es doch sinnvoll, bei neuen Projekten aktiv zu prüfen, Playwright von Anfang an einzuführen. Oder man startet einfach ein Toy-Projekt, um es auszuprobieren.
Ich finde, dass Playwright eine konsistente und etwas sauberere API über verschiedene Sprachen hinweg (JS, Python) bietet.
Gerade bei Python ist die Async-Unterstützung wirklich sehr gut haha