8 pontos por GN⁺ 2024-12-13 | 1 comentários | Compartilhar no WhatsApp
  • Biblioteca Python para automatizar navegadores como Chrome e Firefox
  • Helium é baseado em Selenium e oferece uma API de nível mais alto
    • Scripts em Helium normalmente são 30–50% mais curtos do que scripts em Selenium, além de mais fáceis de ler e mais estáveis
    • No Selenium, é preciso usar IDs HTML, XPath e seletores CSS, mas o Helium permite referenciar elementos pelos rótulos visíveis ao usuário
    • É possível misturar Helium e Selenium
  • Vantagens do Helium
    • iFrames: o Helium consegue interagir com elementos dentro de iFrames aninhados.
    • Gerenciamento de janelas: detecta automaticamente janelas pop-up e coloca o foco nelas. É fácil alternar entre elas
    • Espera implícita: se você tentar clicar em um elemento específico antes de ele terminar de carregar, ele espera por padrão até 10 segundos até que apareça (no Selenium, o script falha)
    • Espera explícita: oferece uma API melhor para aguardar até que uma condição seja atendida.
  • Atualmente, não há suporte gratuito porque falta tempo para manter o projeto
    • PRs são aceitos, e contribuições são bem-vindas.
  • Histórico
    • O Helium foi desenvolvido em 2013 para a BugFree Software, uma startup polonesa de TI
    • Em 2019, a empresa encerrou as atividades e o Helium foi transformado em open source
    • Era possível usá-lo em Java e Python, mas atualmente ele oferece suporte apenas a Python
    • O nome Helium vem do elemento químico, assim como Selenium, e transmite a ideia de ser mais leve

1 comentários

 
GN⁺ 2024-12-13
Comentários do Hacker News
  • O fundador do projeto Selenium mencionou que a API do Helium é semelhante à API inicial do Selenium. Destacou que existem vários estilos de API de automação e que não há uma API que satisfaça todo mundo. Pessoalmente, prefere um estilo funcional simples

    • É pelo mesmo motivo que gosta da 'Uniform Function Call Syntax' da linguagem de programação Nim
  • A maioria dos linters de Python e documentos de boas práticas não recomenda import *. Em vez disso, é possível usar de forma concisa algo como import helium as h

    • Isso é semelhante aos métodos de contorno normalmente usados na automação de navegadores baseada em Python
    • Seguindo o ditado de que o explícito é melhor do que o implícito, há preocupação de que essas camadas possam causar problemas de legibilidade
  • Um usuário que teve experiência com automação ad hoc usando Selenium comentou que a API do Helium, parecida com linguagem natural, teria sido útil

  • Foi levantada uma dúvida sobre a afirmação de que um wrapper para Selenium seria mais leve. Um wrapper, por definição, inclui mais código e funcionalidades, e não usa menos recursos nem é mais rápido

    • Foi enfatizado que testes de automação não se resolvem com uma API elegante, e que automação sustentável exige engenharia de software de verdade
  • Há curiosidade sobre como o Helium se compara a Playwright, Selenium, Cypress e Puppeteer

  • Foi expressa gratidão pelo esforço para que o Helium não desaparecesse

  • Há curiosidade sobre a possibilidade de iniciar com um nome específico de perfil do Chrome ou reutilizar uma sessão existente do Firefox/Chrome

  • Foi levantada uma dúvida sobre quão fácil é distinguir automação de um usuário real. Ao usar a web por meio de automação, pode haver risco de bloqueio de acesso

  • Foi mencionado que o Helium parece poder ser usado para criar fluxos de agentes. Há interesse em criar uma instância sandbox capaz de coletar dados ou executar tarefas de resposta a perguntas

  • Há curiosidade sobre como o Helium reconhece campos de usuário. Foi levantada a dúvida se ele lê o rótulo e assume como campo de usuário o que estiver abaixo ou à direita dele