何ですか Selenium? 導入チュートリアル
⚡ スマートサマリー
Selenium は、複数のプログラミング言語を使用して、ブラウザやプラットフォームをまたいでWebアプリケーションを検証するために設計された、無料のオープンソース自動テストフレームワークです。最新のQAプラクティスに適した、堅牢で効率的、かつスケーラブルなテスト自動化を実現します。

何ですか Selenium?
Selenium は、さまざまなブラウザやプラットフォームでWebアプリケーションを検証するために使用される無料の(オープンソースの)自動テストフレームワークです。次のような複数のプログラミング言語を使用できます。 Java、C#、 Pythonなどを作成する Selenium テストスクリプト。を使用して行われたテスト Selenium テストツールは通常次のように呼ばれます Selenium テスト.
エキスパートインサイト
「テストでは固定のスリープ遅延は避けてください。代わりに、WebDriverWaitなどの明示的な待機を使用して要素の読み込みを待機してください。これにより、スクリプトは実際のページの状況に動的に応答するため、信頼性と速度が向上します。これは、世界中の学生にとって重要なベストプラクティスです。 Seleniumに設立された地域オフィスに加えて、さらにローカルカスタマーサポートを提供できるようになります。」
👉 無料ライブ登録 Selenium テストプロジェクト
Selenium ツールスイート
Selenium ソフトウェアは単なる単一のツールではなく、ソフトウェアのスイートであり、それぞれの部分が異なる用途に対応します。 Selenium 組織の QA テストのニーズ。ツール一覧はこちら
- Selenium 統合開発環境(IDE)
- Selenium リモコン(RC)
- webdriver
- Selenium グリッド
現時点では、 Selenium RC と WebDriver は単一のフレームワークに統合され、 Selenium 2. Selenium ちなみに1とは、 Selenium RC。
ビデオチュートリアル Selenium
詳しくはこちら こちら ビデオにアクセスできない場合
誰が開発したのか Selenium?
Since Selenium はさまざまなツールのコレクションであり、さまざまな開発者もいます。以下は、この活動に顕著な貢献をした主要人物です。 Selenium プロジェクト
主に、 Selenium ました 2004 年にジェイソン・ハギンズによって作成されましたThoughtWorksのエンジニアである彼は、頻繁なテストを必要とするウェブアプリケーションの開発に携わっていました。アプリケーションの反復的な手動テストがますます非効率になっていることに気づき、彼は Javaスクリプト ブラウザの動作を自動的に制御するプログラム。彼はこのプログラムを 「Java「ScriptTestRunner」です。
このアイデアが他のウェブアプリケーションの自動化に役立つ可能性を感じた彼は、 JavaScriptRunnerオープンソース(後に改名) Selenium ペース:。 Web アプリケーション テストの他のオプションを検討することに興味がある場合は、以下を参照してください。 Selenium 選択肢.
同一生成元ポリシーの問題
同一起源ポリシーにより禁止されている Java起動された場所とは異なるドメインの要素にアクセスするスクリプト コード。 たとえば、www.google.comのHTMLコードでは、 Javaスクリプトプログラム「randomScript.js」。同一オリジンポリシーにより、randomScript.js は google.com/mail、google.com/login、google.com/signup など、google.com 内のページにのみアクセスできます。ただし、yahoo.com/search や guru99.com など、異なるドメインに属する他のサイトのページにはアクセスできません。
これが、 Selenium RC、テスターは両方のローカル コピーをインストールする必要があります Selenium コア(a Javaスクリプトプログラムとテスト対象のWebアプリケーションを含むWebサーバーが同じドメインに属するようにします。
の誕生 Selenium リモコン (Selenium RC)
残念ながら、テスターは Selenium Core は、テスト対象のアプリケーション全体と Web サーバーを独自のローカル コンピューターにインストールする必要がありました。 同一オリジンポリシーそこでThoughtWorksの別のエンジニアが ポール・ハマントは、ブラウザを騙してHTTPプロキシとして機能するサーバーを作成することを決定しました。 Selenium コアとテスト対象の Web アプリケーションは同じドメインに由来します。このシステムは、として知られるようになりました。 Selenium リモートコントロール or Selenium 1.
の誕生 Selenium グリッド
Selenium グリッドを開発したのは、 パトリック・ライトボディ テスト実行時間を可能な限り短縮する必要性に対応するため。彼は当初このシステムを 「ホスト型QA」 重要な段階でブラウザのスクリーンショットをキャプチャする機能があり、また 発送 Selenium 異なるマシンに同時にコマンドを送信します。
の誕生 Selenium IDE
笠谷真也 日本が生み出した Selenium IDE Firefox 記録と再生機能を通じてブラウザを自動化できるChrome拡張機能。彼はテストケース作成のスピードをさらに向上させるためにこのアイデアを思いつきました。彼は寄付しました。 Selenium IDE から Selenium プロジェクトイン 2006.
WebDriverの誕生
サイモンスチュワート WebDriver を作成した頃 2006 ブラウザやウェブアプリケーションがより強力になり、より制限的になったとき、 Javaスクリプトプログラム Selenium コア。 これは、OS レベルでブラウザを制御できる最初のクロスプラットフォーム テスト フレームワークでした。
の誕生 Selenium 2
In 2008、全体の Selenium チームは WebDriver と Selenium RCはより強力なツールを形成するために Selenium 2、と WebDriverがコアとなる。 現在、 Selenium RCはまだ開発中ですが、メンテナンスモードのみです。 Selenium プロジェクトの取り組みが現在焦点を当てているのは、 Selenium 2.
それで、なぜその名前がついたのか Selenium?
名前 Selenium これはジェイソンがかつてチームに漏らしたジョークに由来しています。その間 Seleniumの開発、別の 自動テスト フレームワークは、 Mercury 対話 (そう、HPに買収される前にQTPを製造していた会社です)。 Selenium は、よく知られている解毒剤です Mercury ポイズニングという名前をジェイソンが提案し、彼のチームメイトがそれを採用しました。それで、私たちはこのフレームワークを現在までこう呼んでいます。
何ですか Selenium IDE?
Selenium 統合開発環境 (IDE) は、 最も単純なフレームワーク に選出しました。 Selenium スイートです 最も学びやすいもの。 それは、 クロム Firefox プラグイン 他のプラグインと同じように簡単にインストールできます。ただし、そのシンプルさゆえに、 Selenium IDE は、 プロトタイピングツール。より高度なテスト ケースを作成したい場合は、次のいずれかを使用する必要があります。 Selenium RC または WebDriver。
何ですか Selenium リモコン (Selenium RC)?
Selenium RCは、 主要なテストフレームワーク 全体の Selenium 久しぶりのプロジェクト。初めての自動化です Webテスト そのツール ユーザーが好みのプログラミング言語を使用できるようにするバージョン 2.25.0 以降、RC は次のプログラミング言語をサポートできます。
Webドライバーとは何ですか?
WebDriver はより優れていることが証明されています。 Selenium IDEと Selenium RC 多くの面で。ブラウザーのアクションを自動化するための、より現代的で安定したアプローチを実装します。 WebDriverとは異なり、 Selenium RCは、 Javaのスクリプト Selenium 自動化テスト。 ブラウザと直接通信することでブラウザを制御します。
サポートされている言語は、 Selenium RC。
- Java
- C#
- PHP
- Python
- パール
- ルビー
何ですか Selenium グリッド?
Selenium グリッドはツールです と一緒に使用 Selenium 走らせるRC 並列テスト 異なるマシンと異なるブラウザ間で同時に実行できます。 並列実行とは、複数のテストを一度に実行することを意味します。
機能と特徴:
- 有効にする テストの同時実行 in 複数のブラウザと環境。
- 時間を節約する 非常に。
- を活用 ハブとノード コンセプト。ハブは中心的なソースとして機能します。 Selenium 接続されている各ノードにコマンドを送信します。
Selenium ブラウザと環境のサポート
建築上の違いにより、 Selenium SDI、 Selenium RC と WebDriver は、異なるブラウザーとオペレーティング環境のセットをサポートします。
| Selenium IDE | webdriver | |
|---|---|---|
| ブラウザのサポート | モジラ Firefox とChrome | Google Chrome 12+ Firefox Internet Explorer 7 以降および Edge サファリ、 HtmlUnit と PhantomUnit |
| オペレーティングシステム | Windows、Mac OS X、Linux | 上記のブラウザが実行できるすべてのオペレーティング システム。 |
注意: Opera ドライバーが動作しなくなりました
正しい選択方法 Selenium ニーズに合わせたツール
| ツール | 選ぶ理由 |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| webdriver |
|
| Selenium グリッド |
|
実世界のケーススタディ
🔍 ケーススタディ 1: SaaS ダッシュボードのクロスブラウザ互換性
シナリオ
あるSaaS企業は、最新のブラウザ(Chrome、 Firefox、Edge、Safari)。
課題
各ブラウザでの手動テストは時間がかかり、エラーが発生しやすく、急速な開発の反復に対応できませんでした。
ソリューション Selenium
QAエンジニアが作成した Selenium グリッド 複数のブラウザとOSの組み合わせで同じテストスイートを同時に実行できるように設定しました。テストは Python Selenium ログイン、チャートのフィルタリング、データのエクスポートなどのアクション用の WebDriver。
結果
- 回帰期間を 80% 短縮しました。
- ブラウザ固有のレンダリング バグ (IE でのグラフの位置ずれなど) を早期に発見しました。
- 追加の手動サイクルなしで、ブラウザ マトリックス全体で一貫したダッシュボード UX を維持しました。
⚙️ ケーススタディ 2: WebアプリのCI/CD統合 Selenium + TestNG
シナリオ
中規模のウェブ開発会社は、Jenkins を使用した CI/CD パイプラインを活用しています。コードを変更するたびに、コアとなるユーザージャーニーが確実に機能することを確認する必要がありました。
課題
新しいビルドのデプロイメントによって、ログインやフォームの送信などのユーザーフローが中断されることがあり、そのことが 1 日の終わりの手動テストまで検出されませんでした。
ソリューション Selenium
テスターは、 Javaベース Selenium WebDriverスイートは TestNGテストは認証、プロファイル更新、検索機能を対象とし、並列実行とブラウザパラメータ化を活用して、すべてのJenkinsビルドで実行されました。
結果
- フェイルファストフィードバックを実現: 壊れたフローにすぐにフラグが付けられました。
- デプロイ後のバグが 60% 以上削減されました。
- 開発者が QA に到達する前に問題に対処できるようになりました。
🚀 ケーススタディ 3: 旅行アグリゲーターの機能リリースの加速
シナリオ
旅行情報収集プラットフォームは、フライト予約機能を刷新する必要がありました。10ページ以上に及ぶ手動回帰テストに数日かかり、リリースが滞っていました。
課題
市場投入までの時間を短縮するというプレッシャーは手動テスト サイクルを上回ることができず、遅延や品質の低下を招くリスクがありました。
ソリューション Selenium & ページオブジェクトモデル
QA 自動化リーダーが C# にページ オブジェクト モデル (POM) 構造を導入しました。 Selenium WebDriverスクリプトはページ要素とアクション(フライトの検索、フィルターの適用、支払いケース)をカプセル化しました。自動テスト実行はGitLab CIで毎晩実行されました。
結果
- テスト時間は 3 日からわずか 4 時間に短縮されました。
- 複数の機能にわたるスクリプトの再利用により、スクリプト作成の労力が 50% 削減されます。
- 信頼性が高まりました。リリースはバグ報告を最小限に抑えながらスケジュールどおりに出荷されました。
コマンドと Selenium 課題(および解決策)
にもかかわらず、 Selenium は強力ですが、テスターは信頼性と速度に影響を与える可能性のある課題に直面することがよくあります。以下に、よくある課題とその解決方法をご紹介します。
- 不安定なテスト:
タイミングやネットワークの問題により、テストがランダムに失敗する場合があります。
修正: 明示的な待機と安定したロケータを使用する。Thread.sleep(). - 動的 Web 要素:
要素 ID または XPath を変更すると、要素が見つからないというエラーが発生します。
修正: 相対 XPath、CSS セレクター、または動的属性処理を使用します。 - Sync慢性化の問題:
要素の読み込みはスクリプトの実行よりも遅くなります。
修正: 予想される条件で WebDriverWait を実装します。 - ブラウザ間の不一致:
Chromeではテストの動作が異なります。 Firefox、または Edge。
修正: テストを実行する Selenium クロスブラウザ検証用のグリッドまたはクラウド プラットフォーム。 - ポップアップとアラートの処理:
予期しないポップアップによりテストフローが中断される可能性があります。
修正: Seleniumの Alert インターフェースまたは try-catch ブロックを使用して、適切に処理します。 - テストメンテナンスのオーバーヘッド:
UI を頻繁に変更すると、テストが脆弱になります。
修正: ページ オブジェクト モデル (POM) とバージョン管理を採用して更新を簡単にします。 - 統合の課題:
ドライバーの問題により、CI/CD パイプラインが失敗する可能性があります。
修正: Selenium マネジャー (Selenium ドライバーを自動管理するには、Windows 7 または 8.1 (バージョン 4 以上) または WebDriver Manager を使用します。
要するに: ブリッジ Selenium 問題は、同期が不十分であることやロケータが脆弱であることから生じますが、どちらもよりスマートな待機、モジュール設計、継続的なメンテナンスによって解決できます。




.png)
.jpg)
.jpg)
.jpg)



