8P by neo 8일전 | favorite | 댓글 1개
  • 크롬/Firefox 같은 브라우저를 자동화하기 위한 파이썬 라이브러리
  • Helium은 Selenium을 기반으로 하며, 더 높은 수준의 API를 제공
    • Helium 스크립트는 일반적으로 Selenium 스크립트보다 30-50% 짧고, 읽기 쉽고 안정적임
    • Selenium에서는 HTML ID, XPath, CSS 선택자를 사용해야 하지만, Helium은 사용자에게 보이는 레이블로 요소를 참조할 수 있음
    • Helium과 Selenium을 혼합하여 사용할 수 있음
  • Helium의 장점
    • iFrames: Helium은 중첩된 iFrame 내부의 요소와 상호작용할 수 있음.
    • 윈도우 관리: 팝업 창을 자동으로 감지하고 포커스를 맞춤. 쉽게 스위치 가능
    • 암묵적 대기: 특정 엘리먼트가 아직 로드되기 전에 클릭할 경우 나타날때까지 기본 10초까지 기다림(Selenium은 스크립트 실패함)
    • 명시적 대기: 조건이 충족될 때까지 대기하는 더 나은 API를 제공함.
  • 현재는 프로젝트 유지보수에 시간이 부족하여 무료로 지원하지 않음
    • PR은 수락하며, 기여를 환영함.
  • 역사
    • Helium은 2013년 BugFree 소프트웨어라는 폴란드 IT 스타트업을 위해 개발됨
    • 2019년 회사가 종료되었고, Helium을 오픈 소스로 전환함
    • Java와 Python에서 사용 가능했으나, 현재는 Python만 지원함
    • Helium이라는 이름은 Selenium과 같은 화학 원소에서 유래되었으며, 더 가벼움을 의미함
Hacker News 의견
  • Selenium 프로젝트 창립자는 Helium의 API가 Selenium의 초기 API와 유사하다고 언급함. 다양한 스타일의 자동화 API가 존재하며, 모든 사람을 만족시키는 API는 없음을 강조함. 개인적으로는 간단한 함수형 스타일을 선호함

    • Nim 프로그래밍 언어의 'Uniform Function Call Syntax'를 좋아하는 이유도 같은 맥락임
  • 대부분의 Python 린터와 모범 사례 문서에서는 import *를 권장하지 않음. 대신 import helium as h와 같은 방식으로 간결하게 사용할 수 있음

    • Python 기반 브라우저 자동화에서 일반적으로 사용되는 우회 방법과 유사함
    • 명시적인 것이 암시적인 것보다 낫다는 격언에 따라, 가독성을 위해 이러한 레이어가 문제를 일으킬 수 있음을 우려함
  • Selenium을 사용한 임시 자동화를 경험한 사용자는 Helium의 자연어와 유사한 API가 유용했을 것이라고 언급함

  • Selenium의 래퍼가 더 가볍다는 주장에 의문을 제기함. 래퍼는 기본적으로 더 많은 코드와 기능을 포함하며, 리소스를 덜 사용하거나 더 빠르지 않음

    • 자동화 테스트는 멋진 API로 해결되지 않으며, 지속 가능한 자동화를 위해 실제 소프트웨어 엔지니어링이 필요함을 강조함
  • Helium이 Playwright, Selenium, Cypress, Puppeteer와 어떻게 비교되는지 궁금해함

  • Helium이 사라지지 않도록 노력한 것에 감사함을 표현함

  • 특정 Chrome 브라우저 프로필 이름으로 시작하거나 기존의 Firefox/Chrome 세션을 재사용할 수 있는지 궁금해함

  • 자동화가 실제 사용자와 구별되는 것이 얼마나 쉬운지에 대한 의문을 제기함. 자동화를 통해 웹을 사용할 경우 접근이 차단될 위험이 있을 수 있음

  • Helium을 사용하여 에이전트 흐름을 만들 수 있을 것 같다고 언급함. 데이터 수집이나 질문에 답하는 작업을 수행할 수 있는 샌드박스 인스턴스를 만드는 것에 관심이 있음

  • Helium이 사용자 필드를 어떻게 인식하는지 궁금해함. 레이블을 읽고 그 아래나 오른쪽에 있는 것을 사용자 필드로 가정하는지에 대한 의문을 제기함