
Seleniumは2004年、ThoughtWorks社のJason Hugginsが社内ツールから発展させたWebブラウザ自動操作フレームワークです。「ブラウザを実際に動かしてテストする」という発想で、Web E2Eテスト・スクレイピングの世界に革命を起こしました。現在はSelenium WebDriver(W3C標準)が中核で、JavaScriptベースの新興ツール(Cypress、Playwrightなど)の台頭を受けつつも、多言語対応の老舗として今も現役で使われています。
この記事の目次
- Seleniumの主要構成要素
- Selenium と新興ツールの比較
- Seleniumの典型的な使い方
- テスト以外の用途
- まとめ
Seleniumの主要構成要素

Selenium には大きく WebDriver、Grid、IDEの3つがあります。WebDriverはブラウザ操作のためのAPIで、Java/Python/Ruby/C#/JS等多言語のクライアントから呼び出せ、Chrome/Firefox/Safari/Edge 等を統一的に操作可能。
Gridは複数マシンに分散して並列実行するための仕組み、IDEはブラウザ操作を録画してテストコードに変換するブラウザ拡張です。本番テストではWebDriver中心、補助的にGridとIDEを使う構成が多いです。
Selenium と新興ツールの比較

現代E2EテストツールではCypress(2017)とPlaywright(2020、Microsoft)が人気です。JavaScript/TypeScriptネイティブで、開発体験がモダンで速いのが強み。「Selenium はもう古い」という声もありますが、Selenium にしかできない・しやすいこともあります。
Java/C#/Pythonなど非JS言語でテストを書きたい、Internet Explorer 等の古いブラウザも対象、あるいは既存テスト資産が膨大、といった場合はSeleniumが依然第一候補。「新規はPlaywright、既存はSelenium」というのが2020年代の典型的な選び分けです。
Seleniumの典型的な使い方

Seleniumの基本的な操作は「WebDriverを起動 → URLにアクセス → 要素を見つけて操作 → 検証 → 終了」。Pythonなら driver = webdriver.Chrome() でChromeブラウザを起動、driver.find_element(By.ID, 'login').click() のような操作を書きます。
Page Object Patternというデザインパターンと組み合わせて、画面ごとの操作をクラスにまとめると保守性が上がります。pytestやJUnitと組み合わせてCI/CDパイプラインに組み込めば、毎リリース時に主要シナリオを自動テストできます。
テスト以外の用途

Seleniumはテスト用途以外でも、JavaScriptで動的に生成されるサイトのスクレイピング、業務でのブラウザ自動操作、性能テストの一部としても活用されます。「単純なHTML取得(requests/BeautifulSoup)では足りない動的サイト」を相手にできる強力な道具です。
ただしブラウザを実際に起動するため、リソース消費が大きく、軽量なヘッドレス(GUIなしで動かす)モードや、Chrome DevTools Protocol との連携(Puppeteer/Playwright)が選ばれる場面も増えています。用途に応じて使い分けが大切です。
まとめ
SeleniumはE2Eテストの歴史を作った中心的ツールで、今も多くのプロジェクトで現役活躍中です。新しい選択肢が増える時代ですが、多言語対応・歴史的資産・W3C標準という強みは色褪せていません。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント