8 Punkte von GN⁺ 2024-12-13 | 1 Kommentare | Auf WhatsApp teilen
  • Python-Bibliothek zur Automatisierung von Browsern wie Chrome/Firefox
  • Helium basiert auf Selenium und bietet eine höherstufige API
    • Helium-Skripte sind in der Regel 30–50 % kürzer als Selenium-Skripte sowie leichter zu lesen und stabiler
    • Während man in Selenium HTML-IDs, XPath oder CSS-Selektoren verwenden muss, kann man in Helium Elemente über für den Nutzer sichtbare Beschriftungen referenzieren
    • Helium und Selenium lassen sich gemischt verwenden
  • Vorteile von Helium
    • iFrames: Helium kann mit Elementen innerhalb verschachtelter iFrames interagieren.
    • Fensterverwaltung: Erkennt Pop-up-Fenster automatisch und setzt den Fokus darauf. Einfaches Wechseln möglich
    • Implizites Warten: Wenn auf ein bestimmtes Element geklickt wird, bevor es geladen ist, wartet Helium standardmäßig bis zu 10 Sekunden, bis es erscheint (bei Selenium schlägt das Skript fehl)
    • Explizites Warten: Bietet eine bessere API, um zu warten, bis Bedingungen erfüllt sind.
  • Derzeit wird das Projekt aus Zeitmangel für die Wartung nicht kostenlos unterstützt
    • PRs werden akzeptiert, Beiträge sind willkommen.
  • Geschichte
    • Helium wurde 2013 für das polnische IT-Startup BugFree Software entwickelt
    • 2019 wurde das Unternehmen eingestellt, und Helium wurde als Open Source veröffentlicht
    • Es war in Java und Python verfügbar, unterstützt derzeit aber nur noch Python
    • Der Name Helium stammt – wie Selenium – von einem chemischen Element und steht für geringeres Gewicht

1 Kommentare

 
GN⁺ 2024-12-13
Hacker-News-Kommentare
  • Der Gründer des Selenium-Projekts erwähnt, dass die API von Helium der frühen API von Selenium ähnelt. Er betont, dass es verschiedene Stile von Automatisierungs-APIs gibt und dass es keine API gibt, die alle zufriedenstellt. Persönlich bevorzugt er einen einfachen funktionalen Stil

    • Aus demselben Grund mag er auch die „Uniform Function Call Syntax“ der Programmiersprache Nim
  • Die meisten Python-Linter und Dokumente zu Best Practices empfehlen import * nicht. Stattdessen kann man es kurz mit import helium as h verwenden

    • Das ähnelt den üblichen Workarounds, die bei browserbasierter Automatisierung in Python verwendet werden
    • Getreu dem Sprichwort, dass Explizites besser ist als Implizites, gibt es Bedenken, dass solche Layer der Lesbarkeit zuliebe Probleme verursachen können
  • Ein Nutzer mit Erfahrung in ad-hoc-Automatisierung mit Selenium merkt an, dass die API von Helium, die natürlicher Sprache ähnelt, nützlich gewesen wäre

  • Es wird infrage gestellt, dass ein Wrapper um Selenium leichter sei. Ein Wrapper enthält grundsätzlich mehr Code und Funktionen und verbraucht weder weniger Ressourcen noch ist er schneller

    • Es wird betont, dass sich automatisierte Tests nicht mit einer schicken API lösen lassen und dass für nachhaltige Automatisierung echte Softwaretechnik nötig ist
  • Es besteht Neugier, wie Helium im Vergleich zu Playwright, Selenium, Cypress und Puppeteer abschneidet

  • Es wird Dank dafür ausgedrückt, dass man sich bemüht hat, Helium nicht verschwinden zu lassen

  • Es wird gefragt, ob sich mit einem bestimmten Chrome-Browserprofilnamen starten oder eine bestehende Firefox-/Chrome-Sitzung wiederverwenden lässt

  • Es wird die Frage aufgeworfen, wie leicht sich Automatisierung von echten Nutzern unterscheiden lässt. Wenn man das Web per Automatisierung nutzt, könnte das Risiko bestehen, dass der Zugriff blockiert wird

  • Es wird erwähnt, dass sich mit Helium wohl Agenten-Workflows bauen lassen. Es besteht Interesse daran, eine Sandbox-Instanz zu erstellen, die Daten sammeln oder Fragen beantworten kann

  • Es wird gefragt, wie Helium Benutzerfelder erkennt. Es wird die Frage aufgeworfen, ob Labels gelesen werden und dann das darunter oder rechts davon Befindliche als Benutzerfeld angenommen wird