- Biblioteca de Python para automatizar navegadores como Chrome/Firefox
- Helium está basada en Selenium y ofrece una API de más alto nivel
- Los scripts de Helium suelen ser entre 30 y 50% más cortos que los de Selenium, además de ser más fáciles de leer y más estables
- Mientras que en Selenium hay que usar ID de HTML, XPath y selectores CSS, Helium permite referenciar elementos mediante las etiquetas visibles para el usuario
- Se puede usar Helium en combinación con Selenium
- Ventajas de Helium
- iFrames: Helium puede interactuar con elementos dentro de iFrames anidados.
- Gestión de ventanas: detecta automáticamente ventanas emergentes y les da foco. Se puede cambiar entre ellas fácilmente
- Espera implícita: si intentas hacer clic en un elemento antes de que termine de cargar, espera hasta 10 segundos por defecto hasta que aparezca (en Selenium el script falla)
- Espera explícita: ofrece una mejor API para esperar hasta que se cumpla una condición.
- Actualmente no hay tiempo suficiente para dar mantenimiento gratuito al proyecto
- Se aceptan PR y las contribuciones son bienvenidas.
- Historia
- Helium fue desarrollado en 2013 para una startup polaca de TI llamada BugFree Software
- En 2019 la empresa cerró y Helium pasó a ser open source
- Estaba disponible para Java y Python, pero actualmente solo es compatible con Python
- El nombre Helium proviene de un elemento químico, al igual que Selenium, y hace referencia a que es más ligero
1 comentarios
Comentarios de Hacker News
El fundador del proyecto Selenium menciona que la API de Helium se parece a la API inicial de Selenium. Destaca que existen APIs de automatización de muchos estilos y que no hay una que satisfaga a todo el mundo. En lo personal, prefiere un estilo funcional simple.
La mayoría de los linters de Python y la documentación de buenas prácticas no recomiendan
import *. En su lugar, se puede usar de forma concisa algo comoimport helium as h.Un usuario con experiencia en automatizaciones temporales usando Selenium comenta que la API de Helium, similar al lenguaje natural, le habría resultado útil.
Cuestiona la afirmación de que un wrapper de Selenium sea más ligero. Un wrapper, por definición, incluye más código y funcionalidad, y no usa menos recursos ni es más rápido.
Tiene curiosidad por cómo se compara Helium con Playwright, Selenium, Cypress y Puppeteer.
Expresa agradecimiento por el esfuerzo de evitar que Helium desaparezca.
Se pregunta si puede iniciarse con un nombre de perfil específico de Chrome o reutilizar una sesión existente de Firefox/Chrome.
Plantea dudas sobre qué tan fácil es distinguir la automatización de un usuario real. Usar la web mediante automatización podría implicar el riesgo de que se bloquee el acceso.
Menciona que Helium podría servir para crear flujos de agentes. Le interesa crear una instancia sandbox capaz de realizar tareas de recolección de datos o responder preguntas.
Se pregunta cómo Helium reconoce los campos de usuario. Cuestiona si lee la etiqueta y asume que lo que está debajo o a la derecha es un campo de usuario.