- Une bibliothèque Python destinée à automatiser des navigateurs comme Chrome et Firefox
- Helium repose sur Selenium et fournit une API de plus haut niveau
- Les scripts Helium sont généralement 30 à 50 % plus courts que les scripts Selenium, et sont plus faciles à lire et plus stables
- Alors que Selenium impose l’utilisation d’ID HTML, de XPath ou de sélecteurs CSS, Helium permet de référencer les éléments à partir des libellés visibles par l’utilisateur
- Il est possible de combiner Helium et Selenium
- Les avantages de Helium
- iFrames : Helium peut interagir avec des éléments situés dans des iFrame imbriquées
- Gestion des fenêtres : détecte automatiquement les fenêtres pop-up et leur donne le focus. Changement de fenêtre facile
- Attente implicite : si vous cliquez sur un élément spécifique avant qu’il ne soit chargé, Helium attend jusqu’à 10 secondes par défaut jusqu’à son apparition (Selenium fait échouer le script)
- Attente explicite : fournit une meilleure API pour attendre qu’une condition soit remplie
- Actuellement, le projet n’est plus maintenu gratuitement faute de temps pour sa maintenance
- Les PR sont acceptées et les contributions sont les bienvenues
- Historique
- Helium a été développé en 2013 pour BugFree Software, une startup IT polonaise
- En 2019, l’entreprise a cessé son activité et Helium est passé en open source
- Il était disponible en Java et en Python, mais aujourd’hui seul Python est pris en charge
- Le nom Helium vient, comme Selenium, d’un élément chimique, et évoque sa plus grande légèreté
1 commentaires
Commentaires sur Hacker News
Le fondateur du projet Selenium indique que l’API de Helium ressemble à l’API initiale de Selenium. Il souligne qu’il existe différents styles d’API d’automatisation et qu’aucune API ne peut satisfaire tout le monde. Personnellement, il préfère un style fonctionnel simple.
La plupart des linters Python et des documents de bonnes pratiques ne recommandent pas
import *. À la place, on peut utiliser une forme concise commeimport helium as h.Un utilisateur ayant déjà fait de l’automatisation ponctuelle avec Selenium mentionne qu’une API de type langage naturel comme celle de Helium lui aurait été utile.
Certains remettent en question l’affirmation selon laquelle un wrapper autour de Selenium serait plus léger. Un wrapper embarque par nature davantage de code et de fonctionnalités, sans forcément consommer moins de ressources ni être plus rapide.
Certains se demandent comment Helium se compare à Playwright, Selenium, Cypress et Puppeteer.
Des remerciements sont adressés pour les efforts faits afin que Helium ne disparaisse pas.
Certains se demandent s’il est possible de démarrer avec un nom de profil Chrome spécifique ou de réutiliser une session Firefox/Chrome existante.
Des questions sont soulevées sur la facilité avec laquelle l’automatisation peut être distinguée d’un utilisateur réel. Utiliser le web via l’automatisation peut comporter un risque de blocage d’accès.
Certains mentionnent que Helium pourrait servir à créer des flux d’agents. Ils s’intéressent à la création d’instances sandbox capables de collecter des données ou de répondre à des questions.
Certains se demandent comment Helium reconnaît les champs utilisateur : lit-il les libellés puis suppose-t-il que l’élément situé en dessous ou à droite est un champ utilisateur ?