• 案件・求人一覧
  • お役立ちコンテンツ
  • 単価診断
  • ログイン
  • 会員登録
メニューを開く

Seleniumとは|ブラウザ自動化・スクレイピングの基本と案件への影響を解説

スキル

最終更新日:2026/06/29

Seleniumとは|ブラウザ自動化・スクレイピングの基本と案件への影響を解説

Seleniumとは、複数のブラウザを外部からプログラムで操作するOSSの自動化ツールです。E2Eテスト・業務自動化・スクレイピング用途で広く使われ、案件票でも頻出します。学習中のエンジニアや「Selenium経験必須」案件を見たフリーランス向けに、仕組み・Playwright等との違い・案件動向を整理します。

先に結論

  • Seleniumはブラウザ操作をプログラムで自動化するためのOSSで、E2Eテストと業務自動化・スクレイピングが主要用途

  • 中核はW3C標準のWebDriverプロトコル。Python・Java・JavaScript・C#・Rubyなど主要言語クライアントが揃う

  • 単独E2E用途ではPlaywrightやCypressに押されつつあるが、既存資産が大きく保守・移行・新規共存の案件は継続して募集が見られる

  • フリーランス案件は「テスト自動化」「スクレイピング・データ収集」「RPA代替の業務自動化」の3軸で整理すると分かりやすい

  • 学習はSelenium 4 + Python(または Java)から入り、CI/CD連携まで踏み込むと案件適合度が上がる傾向がある

この記事でわかること

  • Seleniumの基本定義とWebDriverアーキテクチャの全体像

  • ブラウザ自動化・スクレイピング・E2Eテストでの使い分け

  • PlaywrightやCypressとの違いと、現在のポジショニング

  • フリーランス案件の典型パターンと、求められやすいスキルセット

  • 学習ステップと、併習しておきたい周辺技術

目次

  • Seleniumとは(基本定義)

  • Seleniumの仕組み(WebDriverアーキテクチャ)

  • Seleniumでできること

  • Selenium・Playwright・Cypressの違い

  • フリーランス案件におけるSeleniumの位置づけ

  • 学習ステップとおすすめの始め方

  • 実務で詰まりやすいポイントと対策

  • Seleniumと併習したい技術スタック

  • まとめ

  • よくある質問

Seleniumとは(基本定義)

Seleniumは、Webブラウザを外部から操作するためのOSSフレームワーク群の総称です。実体は単一のライブラリではなく、「クライアントライブラリ」「WebDriver規格」「Selenium Server」「Selenium Grid」「Selenium IDE」といった複数のコンポーネントから成り立ちます。

普段の開発でChrome DevToolsを手で叩いて検証する作業を、コードに置き換えて再現できるのが最大の価値です。テスト自動化のデファクトとして長く採用されてきた経緯があり、社内テスト基盤・運用バッチ・データ収集スクリプトなどで広く動いています。

ブラウザ自動化フレームワークとしての位置づけ

Seleniumの役割は「実ブラウザを実プロセスとして起動し、人間と同じUI操作をコードで再現する」ことに尽きます。HTTPリクエストだけを送る軽量クローラ(requests+BeautifulSoup等)とは違い、JavaScript実行・Cookie・ストレージ・レンダリング結果まで含めて再現できる点が強みです。

一方で実ブラウザを動かす分、リソース消費は重め。要件が「HTML取得だけ」で済むなら軽量HTTPクライアントの方が速い、というのは判断軸として押さえておきたいところです。

構成要素(WebDriver / Server / Grid / IDE)

主要なコンポーネントは次のとおりです。

コンポーネント

役割

Seleniumクライアントライブラリ

Python・Java等の言語からブラウザを操作するAPIを提供

WebDriver

クライアントとブラウザを橋渡しするプロトコル。W3C標準化済み

ブラウザドライバ

chromedriver・geckodriver等の個別実装。各ブラウザに対応

Selenium Server

リモートWebDriverのエンドポイント。分散実行のハブ

Selenium Grid

複数マシン・複数ブラウザに並列でテストを分散させる仕組み

Selenium IDE

ブラウザ操作を記録・再生できる拡張機能

実務でよく登場するのはクライアントライブラリ+WebDriverの組み合わせ。CI環境やクラウドで並列実行が必要になったタイミングで、Selenium GridやリモートWebDriverが選択肢に入ってきます。

対応ブラウザと対応言語

対応ブラウザはChrome・Edge・Firefox・Safariなど主要どころを網羅。クライアントライブラリは公式が Python・Java・JavaScript・C#・Ruby を提供しており、サードパーティ実装まで含めるとさらに広がります。詳細はSelenium公式サイトで確認するのが確実です。

ミニFAQ:

  • Q. Seleniumの利用に費用はかかりますか?

A. ライブラリ・WebDriver自体はOSSで無料です。クラウド側で実行する場合は、BrowserStackやSauce Labsなどホスティング型サービスの料金が別途発生します。

  • Q. Selenium IDEは今でも使えますか?

A. Chrome・Firefoxの拡張として提供されています。ただしコード化された大規模テストではWebDriverベースに移行するのが一般的です。

フリーランスエンジニアの皆様

今の年収、今の働き方に満足してますか?

あなたの理想の案件を
専属コンシェルジュが実現

フリコンに無料会員登録して案件の相談をする

Seleniumの仕組み(WebDriverアーキテクチャ)

Seleniumの内部動作は、クライアントライブラリ → ブラウザドライバ → ブラウザ本体、という3層構造で理解すると整理しやすくなります。

WebDriverプロトコルとW3C標準化

WebDriverは、ブラウザを外部から操作するためのHTTPベースのプロトコルです。2018年にW3C勧告として標準化されており、各ブラウザベンダがこの仕様に沿ったドライバを提供しています。

標準化されたことで、ブラウザを切り替えても同一APIで操作できる前提が成り立つようになりました。クロスブラウザテストが実用的にこなせるのは、この標準化のおかげです。

クライアント・サーバ・ブラウザドライバの3層

具体的な処理フローは次のとおりです。

  1. テストコード(Python等)が、Seleniumクライアントを通じて「ボタンをクリック」などのコマンドを発行する

  2. クライアントが、WebDriverプロトコルに沿ったHTTPリクエストとしてブラウザドライバへ送信する

  3. ブラウザドライバが、対象ブラウザにネイティブなコマンドへ翻訳し、ブラウザを実際に操作する

  4. 結果(要素のテキスト、スクリーンショット等)が逆方向に返ってくる

リモート実行や並列実行を組む場合は、クライアントとブラウザドライバの間にSelenium Server(Hub)を挟む構成になります。

バージョン体系(Selenium 4と旧バージョンの違い)

Selenium 4(2021年正式リリース)からはW3C WebDriverプロトコルが標準仕様になり、旧JsonWire(Selenium 3まで)との互換層が整理されました。さらにChrome DevTools Protocolとの連携APIが入り、ネットワーク傍受・パフォーマンス計測など、それまで難しかった操作も書きやすくなっています。

なお本記事執筆時点の最新メジャーはSelenium 4系です。バージョン挙動の最新情報は公式リリースノートで確認するのが安全です。旧バージョン(Selenium 2・3系)はサポート対象外の可能性が高いため、保守案件で残っていてもアップデート計画の有無やセキュリティリスクを参画前に確認したいところです。

Seleniumでできること

Seleniumの用途は大きく3つに分かれます。同じツールでも、案件側が想定している成果物はかなり違うため、求人票や案件票を読むときに区別できると話が早くなります。

E2Eテスト自動化

最も歴史が長い用途です。ログイン → 商品検索 → カート追加 → 決済、のようなユーザーシナリオをブラウザ越しに自動再生し、期待結果と一致するか検証します。

JUnit・pytest・TestNG・Cucumberなどテストフレームワークと組み合わせて使うのが一般的。テスト自動化全般の文脈は、社内品質保証の役割について整理したQAエンジニアとは|仕事内容・年収・テストエンジニアとの違いをフリーランス視点で解説や、Java側のテスト自動化を整理したJUnitとは?Javaエンジニアの年収と未来を変える「テスト自動化」も参考になります。

Webスクレイピング・データ収集

JavaScript描画が前提のサイト、ログイン後のページ、無限スクロール型ページなど、HTTPクライアントだけでは取り切れないデータを取得する用途です。料金比較・市況データ・社内KPI収集など、業務側のニーズと結びつきやすいのが特徴です。

注意点は法務・契約面と技術・運用面に分けて整理してください。

  • 法務・契約面:対象サイトの利用規約、著作権、個人情報・パーソナルデータの扱い

  • 技術・運用面:robots.txt、アクセス頻度、対象サイト・自社環境への負荷、認証突破にならないか

技術的に取得できることと、合法に取得・利用してよいことは別問題です。商用利用・継続運用を前提とする場合、最終判断は法務・専門家確認を前提にしてください。実装に踏み込む場合は、Python関連のリンクも合わせて押さえておくと早いです(Pythonとは?できること、将来性、年収・キャリアまで徹底解説!)。

業務自動化(RPA代替)

社内Webシステムの定型入力・帳票出力・複数システム間のデータ転記など、いわゆる「RPAでやっていたこと」をSeleniumで内製化するパターンです。UiPathやPower Automateの代替として、内製可能なエンジニアがいる現場では選択肢に入ります。

ミニFAQ:

  • Q. スクレイピング自体は違法ですか?

A. 行為そのものが直ちに違法というわけではありませんが、対象サイトの利用規約違反・著作権侵害・アクセス妨害・個人情報の不適切な取得などに該当する場合は問題になります。対象データ・取得方法・利用目的・アクセス態様で評価が変わるため、商用利用や継続運用では事前に法務確認を行うことを前提にしてください。

  • Q. Selenium以外にスクレイピングの選択肢はありますか?

A. 静的HTMLが対象ならrequests+BeautifulSoupやScrapyの方が軽量です。JS描画が必要なケースで、かつブラウザを丸ごと動かす必要があるならSelenium・Playwright・Puppeteerが候補に入ります。

フリーランスエンジニアの皆様

今の年収、今の働き方に満足してますか?

あなたの理想の案件を
専属コンシェルジュが実現

フリコンに無料会員登録して案件の相談をする

Selenium・Playwright・Cypressの違い

E2E自動化の主要選択肢としてよく比較されるのが、Selenium・Playwright・Cypressの3つです。それぞれの位置づけを整理します。

観点

Selenium

Playwright

Cypress

主な開発主体

コミュニティ

Microsoft

Cypress.io

対応言語

Python・Java・JS・C#・Ruby ほか

JS・Python・Java・.NET

JavaScript/TypeScript中心

対応ブラウザ

Chrome・Edge・Firefox・Safari等

Chromium・Firefox・WebKit

Chromium系中心(Firefox等は限定対応)

主な強み

エコシステムの厚さ・歴史・対応範囲

高速・安定・モダンAPI

開発体験・デバッグ性

主な弱み

待機処理の自前管理・Flaky起きやすい

既存資産との互換は別物

ブラウザ・言語の対応が限定的

Playwrightとの違い

Playwrightは2020年公開と歴史が浅いぶん、待機処理・ネットワーク傍受・自動リトライなどがAPIに組み込まれており、Seleniumで自前実装が必要だった部分が標準化されています。公開記事・コミュニティ発信・一部の公開案件票を見る限り、新規E2EではPlaywrightの採用例が目立つ傾向があります。一方、既存資産が大きい現場ではSelenium継続も多いのが実情です。詳細はPlaywrightとは|E2Eテスト自動化の基本・Cypressとの違い・案件単価をフリーランス視点で解説を参照してください。

Cypressとの違い

Cypressはブラウザ内部で動作する独自アーキテクチャを採用しており、テストランナーのUI・タイムトラベルデバッグなど開発体験面で評価されています。一方、対応ブラウザ・対応言語がJavaScript系に寄っているため、複数言語を使う現場ではSelenium・Playwrightの方が選ばれやすい傾向があります。

使い分けの判断軸

実務で迷ったら、次の観点で整理すると判断がブレにくくなります。

  • 既存のテスト資産がSelenium 3/4系で蓄積されている → 移行コストと相談し、まずはSeleniumで継続

  • 新規プロジェクト・SPA中心・モダンE2Eが必要 → Playwrightを第一候補に

  • フロントエンドエンジニア中心の開発体制で、JS/TSで完結したい → Cypressが合う場面が多い

  • スクレイピング・業務自動化が主目的 → Selenium・Playwrightのどちらでも可。エコシステムの広さでSeleniumを選ぶケースも多い

フリーランス案件におけるSeleniumの位置づけ

ここからはフリコンが日常的に見ている公開案件・募集要項を踏まえて、フリーランス目線でSeleniumをどう捉えるかを整理します。

案件カテゴリと求められやすいスキル

公開案件ベースで見ると、Seleniumが要件に入る案件は次のように分かれます。

  • テスト自動化案件:E2Eテスト基盤の構築・保守・拡張。pytest/JUnit/TestNG等のテストフレームワークとセットで募集されることが多い

  • QA・SET(Software Engineer in Test)案件:開発と並走しながらテスト戦略・テストコード設計を担う。CI/CD連携の知識が前提になりやすい

  • スクレイピング/データ収集案件:競合価格・市況データ等の収集を継続実行。Python+Selenium+スケジューラ(cron/Airflow等)が典型構成

  • 業務自動化案件:社内Web基幹システムの操作自動化。RPA代替として募集されるケースもある

  • 保守・移行案件:旧Seleniumベースのテストコードを最新化、またはPlaywrightへ移行する案件

求められやすいスキルとしては、Selenium本体に加えてPython/Javaいずれかの実装経験、CI/CD(GitHub ActionsJenkins等)への組み込み経験、Docker上での実行経験、テスト設計やコードレビューの経験などが挙がります。

単価帯の目安(公開案件ベースの観測)

2026年上半期に主要フリーランスエージェントの首都圏中心の公開案件(週3〜5日・業務委託・準委任中心)を確認した範囲では、Selenium単独要件の案件は月額50〜70万円前後で募集されるケースが目立ちます。テスト自動化基盤の設計・SET相当の役割まで担う案件、CI/CDやクラウド運用とセットの案件では月額70〜90万円前後で募集されるケースもあります。なお後者の水準は、Seleniumを単に書ける人ではなく、テスト設計・CI/CD構築・コンテナ運用・レビュー主導まで担える中堅以上のエンジニアが対象となるケースが中心です。

これらはあくまで公開案件の見え方であり、実際の契約条件は経験年数・稼働形態・商流・スキルセットで大きく変動します。単価の前提条件についてはフリーランスエンジニアの単価相場と単価を上げるのに重要なことも合わせて確認してみてください。

「Selenium経験必須」案件の典型像

案件票で「Selenium経験必須」と書かれている場合、求められているのは次のいずれかであることが多い印象です。

  • 既存のSeleniumテストコードを読んで、機能追加・修正できるレベル

  • 待機処理・要素特定戦略(CSSセレクタ・XPath)を、状況に応じて設計できる

  • CI上での実行・並列化・Flakyテストの安定化を経験している

  • スクレイピング用途の場合は、対象サイトの規約確認・例外設計・再試行制御まで考慮できる

「Seleniumを触ったことがある」レベルだとミスマッチが起きやすい領域です。GitHubで動くサンプルや、業務でメンテナンスしたコードのスクリーンショット(情報秘匿に注意)など、提示できる素材があるとマッチング率が上がりやすくなります。

ミニFAQ:

  • Q. 未経験からSelenium案件に入れますか?

A. 完全未経験からの直接案件は厳しめです。ただし、E2EテストやスクレイピングをPythonで小規模に組んだ経験があれば、保守・拡張案件のサブメンバとして入れるケースがあります。先にテストエンジニアとは?仕事内容や必要なスキル、年収について解説を読んで、テスト全体の役割整理から進めるのがおすすめです。

フリーランスエンジニアの皆様

今の年収、今の働き方に満足してますか?

あなたの理想の案件を
専属コンシェルジュが実現

フリコンに無料会員登録して案件の相談をする

学習ステップとおすすめの始め方

Seleniumは「動かす」だけならハードルが低く、「業務で安定運用できる」までは深い、という構造です。学習の入り口を間違えなければ実用ラインには早く到達できます。

Selenium 4+Python or Javaが最短ルート

新規学習なら、Selenium 4と一緒にPythonまたはJavaを使うのが効率的です。Pythonはスクレイピング・業務自動化と相性がよく、Javaは大規模テスト基盤・SET職と相性がよい、という傾向があります。

JavaScript経験がメインならJavaScriptとは?できることや年収、将来性について解説で土台を整理してから、Selenium JSバインディングまたはPlaywrightに進む選択もアリです。

公式チュートリアル・公式ドキュメントの活用

公式のSelenium Documentationは、入門〜応用まで揃っており、特に待機処理・要素特定戦略・テスト構造化の章は実務で参考になります。日本語情報だけだと旧バージョンに引っ張られがちなので、Selenium 4ベースの公式ドキュメントを軸に学ぶのが安全です。

CI/CD連携で実務スキルへ昇格させる

「ローカルで動く」止まりだと実務レベルに届きません。最低限、GitHub ActionsやJenkins上での実行、ヘッドレスモードでのDockerコンテナ実行、テスト結果のレポート出力まで踏み込めると、案件票に対するアピールが大きく変わります。

CI/CDの全体像はGitHub Actionsとは?CI/CDの仕組み・基本ワークフロー・案件単価をフリーランス視点で解説が入り口に向いています。

実務で詰まりやすいポイントと対策

Seleniumは「最初動かす」より「壊れずに動かし続ける」方が圧倒的に難しいツールです。実務で頻発する詰まりどころを先回りで整理しておきます。

待機処理(Implicit Wait・Explicit Wait・Fluent Wait)

Seleniumで一番つまずきやすいのが、要素描画を待つ処理です。Implicit Wait(暗黙的待機)は全体に適用される一括設定で扱いやすい反面、Explicit Wait(明示的待機)と混在させると挙動が予測しづらくなります。基本は「Explicit Waitを軸に設計し、Implicit Waitは原則使わない」が安全策とされています。

SPA・動的レンダリング対応

React/Vue/AngularなどのSPAは、URLが変わっても画面遷移していないケースが多く、ページロード完了の判定が難しくなります。要素が出現するまでの明示的待機、API応答の完了監視、独自のレディ判定属性を仕込むなど、対象アプリと相談しながら設計する必要があります。

Flaky Test(不安定なテスト)の対策

CI環境で時々失敗する「Flakyテスト」は、自動テストの天敵です。よくある原因は次のとおりです。

  • ネットワーク・APIの揺らぎを待っていない

  • 共有データを他のテストが書き換えている

  • アニメーションの完了を待たずにアサーションしている

  • 環境差(解像度・タイムゾーン・ブラウザバージョン)に依存している

対策は、テスト粒度を細かくする・テスト間の依存をなくす・適切な明示的待機を入れる・リトライ制御を入れる、などの組み合わせです。

ブラウザドライバのバージョン管理

Chromeなどの自動更新で、ブラウザ本体とchromedriverのバージョンがずれてテストが落ちる、というのは長らくSelenium運用の頭痛の種でした。Selenium 4以降はSelenium Managerによってドライバ自動取得が改善されています。それでも、CI環境ではブラウザバージョンを固定するか、Dockerイメージで揃えるのが安全です。

フリーランスエンジニアの皆様

今の年収、今の働き方に満足してますか?

あなたの理想の案件を
専属コンシェルジュが実現

フリコンに無料会員登録して案件の相談をする

Seleniumと併習したい技術スタック

Seleniumは単体で完結しません。実務で武器になるのは、周辺技術とセットで使えるエンジニアです。

テスト・QA系

  • テストフレームワーク:pytest(Python)、JUnit(Java)、TestNG、Cucumber/behave(BDD)

  • アサーション・モック:Hamcrest、AssertJ、unittest.mock

  • テスト設計:境界値・同値分割・状態遷移など、設計手法の基本

スクレイピング系

  • HTTPクライアント:requests、httpx

  • HTML解析:BeautifulSoup、lxml

  • 大規模クローリング:Scrapy

  • 定期実行・ワークフロー管理:Apache Airflow、cron、Cloud Scheduler

CI/CD・コンテナ系

  • CI/CDGitHub ActionsJenkins、GitLab CI

  • コンテナDocker(公式 selenium/standalone-chrome 等のイメージ活用)

  • 並列実行:Selenium Grid、Docker Compose、Kubernetes

まとめ

Seleniumはブラウザ自動化のOSSデファクトとして長い歴史を持ち、E2Eテスト・スクレイピング・業務自動化の3軸で今も現場で動き続けているツールです。新規E2EではPlaywrightに押される場面もありますが、既存資産の規模と汎用性は依然として大きく、フリーランス案件の母集団も継続的にあります。

要点を整理すると次のとおりです。

  • Seleniumの中核はW3C WebDriverプロトコル。Selenium 4でモダン化が進んだ

  • 用途はE2Eテスト・スクレイピング・RPA代替の3軸。案件票を読むときの整理軸になる

  • Playwright・Cypressとは「歴史・対応範囲・開発体験」で差別化されている。新規はPlaywrightが伸びている領域

  • 単独要件で月額50〜70万円前後、テスト基盤設計やCI連携まで担うケースで70〜90万円前後の募集が観測される

  • 学習はSelenium 4+Python or Javaで入り、CI/CD・Docker連携まで踏み込むと案件適合度が上がる

次のアクションとしては、まず公式ドキュメントでSelenium 4ベースのチュートリアルを一通り動かす、続いてGitHub Actions等でCI連携まで組む、というステップが効率的です。テスト自動化のキャリア像についてはQAエンジニアとは|仕事内容・年収・テストエンジニアとの違いをフリーランス視点で解説、フリーランス案件の獲得実務についてはフリーランスエンジニアの営業方法と案件獲得の近道も合わせて参考にしてみてください。

参照リンク:

よくある質問

AnswerMark

Selenium 4からはW3C WebDriverプロトコルが標準仕様になりました。旧JsonWire互換層の整理、Chrome DevTools Protocol連携API(ネットワーク傍受・パフォーマンス計測等)の追加、Selenium Manager(ドライバ自動取得)導入などが大きな変更点です。新規プロジェクトはSelenium 4から入って問題ありません。

AnswerMark

Chrome・Firefoxの拡張機能として提供されており、簡易な操作記録には使われています。ただし、業務で安定運用するレベルのテストでは、保守性の観点からWebDriverベースのコードに移行するのが一般的です。

AnswerMark

取得対象がJavaScript描画前提のサイト・ログイン後のページならSelenium、静的HTML中心ならBeautifulSoup(+requests)が向いています。実務では両方使い分けるケースが多いため、可能なら両方触っておくと便利です。

AnswerMark

はい。公開案件ベースでは、Seleniumの保守・拡張・移行案件を中心に継続して募集があります。新規構築はPlaywrightへシフトしているケースもありますが、既存テスト資産の規模が大きく、保守・移行・新規共存の案件は今後も一定量残ると見るのが妥当です。

AnswerMark

多くの環境では、Selenium 4のSelenium Manager機能で対応ドライバを自動取得できます。CI環境でバージョン固定したいケース、オフライン環境、特殊な構成では手動取得を選ぶこともあります。

AnswerMark

ChromeOptionsで「--headless=new」(または旧来の「--headless」)を指定します。CI/サーバ上で実行する標準的なやり方です。Firefoxの「-headless」オプションも同様に使えます。

AnswerMark

公式の「selenium/hub」「selenium/node-chrome」等のイメージが提供されており、Docker Composeで簡易なGrid環境を立てられます。本番運用ではKubernetesでスケールさせるケースもあります。

AnswerMark

既存資産はSeleniumのまま、新規追加分はPlaywrightで書く、という併用パターンは現場でしばしば見られます。テストフレームワーク層を共通化しておけば、移行コストを段階的に分散できます。

AnswerMark

利用規約・robots.txt・著作権・個人情報保護・アクセス頻度の5点は必ず確認してください。技術的に取得できることと、合法に取得・利用してよいことは別問題です。商用利用や継続的なクローリングなら、対象サイトへの事前確認も視野に入れてください。

AnswerMark

ポートフォリオとして「テスト自動化基盤の構築経験」「CI連携の経験」「Docker上での実行経験」のいずれかを提示できると有利です。エージェントとの面談時にフリーランスエージェントとの面談の内容と必要な準備を参考に、希望条件・スキル・実績を整理しておくと商談がスムーズに進みます。

関連するタグ:

テストエンジニアPythonJavaJavaScript

タグからお役立ちコンテンツを探す