8 puntos por GN⁺ 2024-12-13 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2024-12-13
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.

    • Le gusta la 'Uniform Function Call Syntax' del lenguaje de programación Nim por la misma razón.
  • 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 como import helium as h.

    • Es similar a una solución alternativa usada comúnmente en la automatización de navegadores basada en Python.
    • Siguiendo el dicho de que lo explícito es mejor que lo implícito, le preocupa que esta capa pueda causar problemas de legibilidad.
  • 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.

    • Destaca que las pruebas de automatización no se resuelven con una API elegante, sino que requieren verdadera ingeniería de software para que la automatización sea sostenible.
  • 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.