- 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 を提供する。
- 現在はプロジェクト保守に割く時間が不足しているため、無償ではサポートしていない
- 歴史
- Helium は 2013 年にポーランドの IT スタートアップ BugFree Software 向けに開発された
- 2019 年に会社が終了し、Helium はオープンソース化された
- Java と Python で利用可能だったが、現在は Python のみをサポートしている
- Helium という名前は Selenium と同じ化学元素に由来し、より軽いことを意味している
1件のコメント
Hacker Newsの意見
Seleniumプロジェクトの創設者は、HeliumのAPIがSeleniumの初期APIに似ていると述べている。さまざまなスタイルの自動化APIが存在し、すべての人を満足させるAPIはないことを強調している。個人的にはシンプルな関数型スタイルを好む
ほとんどのPythonリンターやベストプラクティス文書では、
import *は推奨されていない。代わりにimport helium as hのような形で簡潔に使うことができるSeleniumを使った一時的な自動化を経験したユーザーは、Heliumの自然言語に似たAPIが有用だっただろうと述べている
Seleniumのラッパーがより軽量だという主張に疑問を呈している。ラッパーは基本的により多くのコードと機能を含み、リソース使用量が少ないわけでも、より高速なわけでもない
HeliumがPlaywright、Selenium、Cypress、Puppeteerと比べてどうなのか気になっている
Heliumが消えないよう尽力してくれたことに感謝を示している
特定のChromeブラウザープロファイル名で起動したり、既存のFirefox/Chromeセッションを再利用できるのか気になっている
自動化が実際のユーザーと区別されるのがどれほど簡単なのか疑問を呈している。自動化を通じてWebを利用する場合、アクセスが遮断されるリスクがあるかもしれない
Heliumを使ってエージェントのフローを作れそうだと述べている。データ収集や質問応答の作業を実行できるサンドボックスインスタンスを作ることに関心がある
Heliumがユーザーフィールドをどのように認識するのか気になっている。ラベルを読み取り、その下または右側にあるものをユーザーフィールドだと見なしているのか疑問を呈している