Microsoft veröffentlicht ein auf Node basierendes Browser-Automatisierungsprojekt namens Playwright. Es ermöglicht Ihnen, eine Headless-Version eines Browsers zu starten und zu steuern. Gehe hierhin! Klicke auf etwas! Mache einen Screenshot! Solche Dinge. Besonders nützlich für Tests.
Es ist genau wie Googles Puppeteer, nur dass es anstatt Chrome-only auch in Firefox und Safari "funktioniert".
Das Drama begann sofort.
Auf den Launch-Tweet von Andrey Lushnikov (dessen Twitter-Bio lautet "ehemaliger TL @ Chrome Puppeteer, ehemaliger Eng @ Chrome DevTools") antwortet Sam Sneddon, der die Kompatibilität über verschiedene Browser hinweg in Frage stellt. Anscheinend kommt diese Kompatibilität über sehr große Patches für diese anderen Browser, die einige als etwas fragil und wenig wahrscheinlich einstufen, jemals in diese anderen Browser integriert zu werden, insbesondere da es konkurrierende Bemühungen wie puppeteer-firefox gibt.
Es ist ziemlich offensichtlich, dass das ursprüngliche Team von Google hinter Puppeteer irgendwie, ähhh, sich zu Microsoft "durchgeschlagen" und die Arbeit dort neu gemacht hat. Ein Spatz hat mir erzählt, dass Google darüber richtig verärgert ist.
Ich habe hier keine weiteren Insider-Informationen, aber es lässt Microsoft hier nicht besonders gut aussehen. Für ein Unternehmen, das mit seiner Open-Source-Strategie so viel Erfolg hatte, ist es kein gutes Bild, ein Team abzuwerben, um ein direkt konkurrierendes alternatives Open-Source-Projekt aufzubauen, ohne viel Kooperation von den anderen Open-Source-Projekten, mit denen es integriert wird. Gleichzeitig ist es ziemlich cool, ein funktionierendes Projekt zu haben, das die Steuerung von Browsern im Headless-Modus über verschiedene Browser hinweg ermöglicht.
Bitte erleuchten Sie mich, wenn ich alles falsch verstanden habe.
Verwandt: Soweit ich weiß, verwendet Cypress keines der beiden Projekte, hat aber seine eigene Lösung und ist ebenfalls kurz davor, Firefox-Unterstützung zu erhalten.
Das war neu für mich, dass Cypress kurz vor FF-Unterstützung steht. Dieses Ticket ist über zwei Jahre alt und ich habe keinen Beweis dafür gesehen.
Das war einer der entscheidenden Faktoren für mich, um mein Framework zu wechseln. Denn dort, wo ich es einsetze, benötigen wir die Unterstützung anderer Browser im Testprozess.
Und aus meiner Sicht ist Safari (macOS) und Edge (win) wichtiger als Firefox.
Nur zur Info, Cypress hat im vergangenen Februar Firefox- und Edge-Unterstützung hinzugefügt. Schauen Sie sich Version 4.0 an.
Die Entwickler dieses Teams investieren viel Arbeit, um der Community ein Open-Source-Tool zur Verfügung zu stellen, das beim Testen über verschiedene Browser hinweg hilft. Ich habe es bei QA Wolf ausprobiert und alle unsere Tests laufen auf Chromium, Firefox und Webkit. Es gab ein paar Randfälle, aber die Playwright-Entwickler haben die von mir gemeldeten Probleme noch am selben Tag behoben.
Vielleicht war Google nicht bereit, die Ressourcen für die Cross-Browser-Unterstützung bereitzustellen, und Microsoft war es. Sie haben unterschiedliche Anreize wegen Chrome. Ich glaube nicht, dass es fair ist, von negativen Motiven auszugehen.
Zu den Patches: Playwright erwähnt, dass sie diese Patches gerne in die Hauptentwicklung aufnehmen würden. Ich mache ihnen keinen Vorwurf, dass sie sich nicht davon aufhalten lassen wollen.
Es ist Open-Source, lassen Sie den Wettbewerb beginnen. Warum den Wettbewerb drosseln, wenn Wettbewerb zu besseren Werkzeugen führen kann? Sicher, es wäre großartig, wenn sie zusammenarbeiten könnten, aber wenn nicht, gewinnt der Benutzer mit mehr Auswahl.