8 ポイント 投稿者 GN⁺ 2024-12-13 | 1件のコメント | WhatsAppで共有
  • Chrome/Firefox のようなブラウザを自動化するための Python ライブラリ
  • 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 年にポーランドの IT スタートアップ BugFree Software 向けに開発された
    • 2019 年に会社が終了し、Helium はオープンソース化された
    • Java と Python で利用可能だったが、現在は Python のみをサポートしている
    • Helium という名前は Selenium と同じ化学元素に由来し、より軽いことを意味している

1件のコメント

 
GN⁺ 2024-12-13
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セッションを再利用できるのか気になっている

  • 自動化が実際のユーザーと区別されるのがどれほど簡単なのか疑問を呈している。自動化を通じてWebを利用する場合、アクセスが遮断されるリスクがあるかもしれない

  • Heliumを使ってエージェントのフローを作れそうだと述べている。データ収集や質問応答の作業を実行できるサンドボックスインスタンスを作ることに関心がある

  • Heliumがユーザーフィールドをどのように認識するのか気になっている。ラベルを読み取り、その下または右側にあるものをユーザーフィールドだと見なしているのか疑問を呈している