Playwright vs. Selenium – ein Leitfaden

Erfahren Sie mehr über Playwright und Selenium, prüfen Sie die Tools anhand der angebotenen Funktionen, ihrer Flexibilität und Leistung, der Unterstützung durch die Community, der Browserunterstützung, der Einrichtung und der Benutzerfreundlichkeit.
7 min read
Playwright vs selenium

Wenn Sie dynamische Websites, die JavaScript verwenden, scrapen möchten, wird häufig empfohlen, ein Tool zur Browser-Automatisierung zu benutzen. Solche Tools ermöglichen es Ihnen, mit einem Browser unter Verwendung eines Codes zu arbeiten und die Informationen zu scrapen, die von diesem Browser angezeigt werden.

Es gibt eine Vielzahl von Tools zur Browser-Automatisierung, z. B Puppeteer, Seleniumund Playwright. Der Schwerpunkt dieses Artikels liegt auf Playwright und Selenium. Besprochen werden die Funktionen, Flexibilität und Leistung, Unterstützung durch die Community, Browserunterstützung, Einrichtung und die Benutzerfreundlichkeit der einzelnen Tools.

Einrichtung und Benutzerfreundlichkeit  

Sowohl Playwright als auch Selenium unterstützen mehrere Programmiersprachen – darunter Java, Python und JavaScript – über Bindungen (eng. bindings), also sprachspezifische Anbindungen, die alle die gleiche API verwenden. Um Playwright oder Selenium zu verwenden, müssen Sie die Sprachanbindungsbibliothek für Ihre Sprache herunterladen.

Wenn Sie zum Beispiel Python verwenden, müssen Sie die Bibliothek pytest-playwright herunterladen und installieren, und wenn Sie Selenium verwenden, die Bibliothek selenium.

Bei der Installation von Selenium gibt es jedoch einen zusätzlichen Schritt: Sie müssen einen WebDriver für den von Ihnen verwendeten Browser herunterladen. Wenn Sie beispielsweise mit Chrome scrapen wollen, müssen Sie ChromeDriver herunterladen. Im Gegensatz dazu verfügt Playwright über einen einzigen Treiber und lädt die erforderlichen Binärdateien für alle unterstützten Browser herunter, wenn Sie den Befehl playwright installieren eingeben.

Sobald alles eingerichtet ist, verhalten sich beide Bibliotheken sehr ähnlich und sollten einfach zu navigieren sein, wenn Sie bereits Erfahrung mit dem Web Scraping haben. Wenn Sie jedoch ein Einsteiger sind, bietet Playwright eine übersichtlichere API und leistungsstarke Funktionen zur Fehlersuche, mit deren Hilfe Sie Ihre ersten Skripte problemlos erstellen können. Außerdem ist die Dokumentation für Playwright moderner und eignet sich besser für Einsteiger.

Zusammenfassend lässt sich sagen, dass sowohl Selenium als auch Playwright einfach zu bedienen sind. Allerdings ist die Erfahrung mit Playwright reibungsloser und führt seltener zu unnötigen Verwirrungen.

Angebotene Funktionen  

Sowohl Playwright als auch Selenium bieten alle notwendigen grundlegenden Funktionen zum Auffinden der Elemente. Sie können die Elemente mithilfe von CSS- oder XPath-Selektoren finden:


# Playwright 
heading = page.locator('h1')
accept_button = page.locator('//button[text()="Accept"]')

# Selenium 
heading = driver.find_element(By.CSS_SELECTOR, 'h1')
accept_button = driver.find_element(By.XPATH, '//button[text()="Accept"]')

Playwright bietet zusätzliche Locator, mit denen Sie Eigenschaften wie Text, Platzhalter, Titel und Rolle abfragen können. Diese ermöglichen es Entwicklern, eindeutigere Locator zu schreiben. Sie sind auch hilfreich für Einsteiger, die noch nicht wissen, wie sie diese Locator mit Selektoren erreichen können:

accept_button = page.get_by_text("Accept")

Beim Scrapen von Webanwendungen ist es wichtig, dass die zeitliche Abfolge der Aktionen stimmt. Sie müssen darauf achten, dass Sie keine Aktionen für Elemente ausführen, die noch nicht angezeigt wurden, und dass Sie nicht zu lange warten, bevor die Elemente geladen sind.

Um dies zu erreichen, verwendet Selenium explizite Warteanweisungen. Sie können das Skript zum Beispiel anweisen, darauf zu warten, dass das Element auf der Seite geladen wird:

el = WebDriverWait(driver, timeout=3).until(lambda x: x.find_element(By.TAG_NAME,"button"))
el.click()

Im Vergleich dazu sind die Wartezeiten bei Playwright ein bisschen einfacher. Bevor Playwright Aktionen für Elemente ausführt, führt es automatisch eine Reihe von Prüfungen durch, die feststellen, ob die Aktion ausgeführt werden kann. Das bedeutet, dass es nicht möglich ist, auf ein Element zu klicken, das noch nicht sichtbar ist:

page.get_by_role("button").click()

Beide Tools verfügen außerdem über mehrere bemerkenswerte Qualitätsmerkmale für die Fehlersuche und die Generierung von Codes. Mit Playwright Inspector können Sie Skripte durchgehen und sehen, wo etwas falsch läuft. Sie müssen ein und dasselbe Skript nicht mehr x-Mal neu ausführen!

Wenn Sie Ihre Skripte erstellen möchten, ohne in HTML nach Selektoren zu suchen, bietet Playwright die Möglichkeit, diese mit dem Code-Generator aufzuzeichnen. Dieser Generator zeichnet die von Ihnen durchgeführten Aktionen auf und stellt Codes zur Ausführung dieser Aktionen bereit. Das ist für Einsteiger, die sich mit der Bibliothek vertraut machen wollen, besonders praktisch.

Der vom Code-Generator erzeugte Code ist zwar aufgrund der Spezifität der Selektoren nicht für das Scraping von Informationen geeignet, aber für Experten kann er nützlich sein, um Einrichtungsaktionen zu erzeugen, die vor dem Scrapen durchgeführt werden müssen, z. B. die Anmeldung bei einem Konto oder das Navigieren zur richtigen Seite.

Selenium hat auch ein Wiedergabe- und Aufzeichnungstool namens Selenium IDE, das als Browser-Erweiterung für Chrome und Firefox verfügbar ist. Selenium IDE dient als Werkzeug für die Wiedergabe und Aufzeichnung und ermöglicht die Aufzeichnung von Selenium-Skripten direkt in der Browserumgebung. Dieses Tool bündelt die Fähigkeiten des Playwright Inspectors und des Code-Generators in einem einfachen, leicht zu bedienenden Paket.

Flexibilität und Leistung  

Wie bereits erwähnt, werden Playwright und Selenium von einer großen Anzahl von Sprachen unterstützt. Playwright unterstützt offiziell JavaScript/TypeScript, Java, Python und C#. Und Selenium unterstützt offiziell Java, C#, Python, JavaScript, Ruby und Kotlin.

Zusätzlich zu den offiziell unterstützten Sprachen können Sprachen mit inoffiziellen Sprachanbindungsbibliotheken verbunden sein, die gleichfalls verwendet werden können. Unter diesen ist Selenium die beliebteste Wahl, und die meisten Programmiersprachen sind zumindest mit einer Sprachanbindungsbibliothek für Selenium verbunden. Das heißt, wenn Sie sich für Selenium entscheiden, können Sie es für das Web Scraping in praktisch jeder Programmiersprache verwenden, die Ihnen begegnet.

Die meisten Benchmarks zeigen, dass Playwright deutlich schneller ist als Selenium. Da beide einen echten Webbrowser steuern (wenn auch in der Regel ohne eine grafische Benutzeroberfläche, um Ressourcen zu sparen), ist die Effizienz der Tools begrenzt. Die Entwickler von Playwright haben jedoch zahlreiche Verbesserungen durchgeführt, die die Skriptausführung beschleunigen und die Parallelisierung erleichtern.

Derzeit unterstützen beide Tools Kontexte, die dem Inkognito-Modus des Browsers ähneln. Das ermöglicht die Ausführung mehrerer unabhängiger Browsersitzungen, wodurch Kosten für das Starten des Browsers eingespart werden, während Skripte isoliert ausgeführt werden. Die Implementierung von Kontexten mit Playwright bringt jedoch mehr Leistungsvorteile als bei Selenium, da Sie mehrere Kontexte parallel ausführen können, was das Scraping noch mehr beschleunigt.

Unterstützung durch die Community  

Selenium und Playwright bieten beide eine hervorragende Unterstützung durch die Community, die von vielen Web-Scraping-Experten verwendet wird, sodass es einfach ist, Anleitungen zu den einzelnen Themen zu finden.

Da Selenium älter ist als Playwright, stand mehr Zeit zu Verfügung, während der sich ein großer Bestand an Dokumentationen und Anleitungen für die breite Palette an Funktionen angesammelt hat. Ganz gleich, welche Funktion Sie nutzen möchten, sie wurde höchstwahrscheinlich vom Entwicklerteam und der Community ausführlich dokumentiert. Und wenn Sie einmal Hilfe bei der Verwendung von Selenium benötigen, finden Sie vielerorts Antworten auf Ihre Fragen.

Im Vergleich dazu hatte Playwright weniger Zeit, eine Materialsammlung aufzubauen, aber das wird dadurch wettgemacht, dass bei Playwright engagierte Entwickler von Microsoft arbeiten, die die neuen, vom Team entwickelten und eingebrachten Funktionen vorstellen und erklären. Die Dokumentation ist übersichtlicher und moderner, sodass sie für Anfänger leichter zu verwenden ist.

Tipps und Anleitungen für die Verwendung von Playwright finden Sie im offiziellen Blog und auf YouTube. Und wenn Sie sich der Playwright-Community anschließen möchten, hat das Team einen Discord-Kanal der Community.

Fazit

Beim Vergleich von Playwright und Selenium stellen wir fest, dass Playwright definitiv ein brillantes Tool mit einer Menge cooler neuer Funktionen ist, während Selenium das stabile Tool ist, das gut funktioniert und für Experten mehr als ausreichend ist. Wenn Sie gerade erst in die Welt des Web Scrapings einsteigen, eignet sich Playwright wegen der Unterstützung, die Einsteigern geboten wird, besser für Sie.  

Egal, ob Sie Playwright oder Selenium für das Web Scraping wählen, Bright Data`s Proxys können problemlos in beide Tools zur Browser-Automatisierung integriert werden. Folgen Sie unserer Schritt-für-Schritt-Anleitung über die Integration von Proxys in Playwright und die Integration von Proxys in Selenium. Treten Sie dem größten Proxy-Netzwerk bei und testen Sie es kostenlos.