# Seleniumを詳しく見る

> Seleniumは、Webブラウザの自動化を可能にし、その自動化を支援する 多様なツールとライブラリを包含するプロジェクトです。

URL: https://deploy-preview-2977--selenium-dev.netlify.app/ja/documentation/overview/details/

---

### SeleniumはWebブラウザを制御します

_Selenium_ にはさまざまな側面がありますが、その中核は、ブラウザインスタンスをリモートで制御し、
ユーザーとブラウザのやりとりをエミュレートするために利用可能な最良の技術を用いる、
Webブラウザ自動化のためのツールセットです。

Seleniumを使用すると、エンドユーザーが行う一般的な操作を
シミュレートできます。フィールドへのテキスト入力、ドロップダウンの値やチェックボックスの選択、
ドキュメント内のリンクのクリックなどです。また、マウス移動や任意のJavaScriptの実行など、
ほかにも多数の機能を提供します。

Seleniumは主にWebサイトのフロントエンドテストに使用されますが、その中核は、
ブラウザのユーザーエージェントとして機能する _ライブラリ_ です。
そのインターフェースは幅広い用途で利用でき、目的に合わせてほかのライブラリと
組み合わせることができます。

### すべてを支配する1つのインターフェース

プロジェクトの指針となる原則の1つは、すべての（主要な）ブラウザ技術に共通のインターフェースを
サポートすることです。Webブラウザは非常に複雑で、高度に設計されたアプリケーションであり、
まったく異なる方法で操作を実行しますが、実行中は同じように見えることがよくあります。
テキストは同じフォントで表示され、画像は同じ場所に表示され、リンク先も同じです。
水面下で起こっていることは、昼と夜と同じくらい異なります。
Seleniumはこれらの違いを「抽象化」し、コードを書く人からその詳細や複雑さを隠蔽します。
これにより、数行のコードを記述して複雑なワークフローを実行できますが、同じコード行は、
Firefox、Internet Explorer、Chrome、およびその他のサポートされているすべてのブラウザで
実行されます。

### ツールとサポート

Seleniumの最小限の設計アプローチにより、より大規模なアプリケーションのコンポーネントとして
組み込める汎用性が得られます。Seleniumの傘下で提供される周辺インフラストラクチャは、
[ブラウザのGrid](https://deploy-preview-2977--selenium-dev.netlify.app/ja/documentation/grid/index.md)を構築するためのツールを提供し、
さまざまなマシン上の複数のオペレーティングシステムとブラウザでテストを実行できるようにします。

サーバールームやデータセンター内の多数のコンピュータがすべて同時にブラウザを起動して、
サイトのリンク、フォーム、テーブルにアクセスし、1日24時間アプリケーションをテストしていると
想像してください。最も一般的なプログラミング言語向けに提供されるシンプルな
プログラミングインターフェースを介して、これらのテストは並列で休むことなく実行され、
エラーが発生するとユーザーに報告します。

ブラウザを制御するだけでなく、そのようなGridを簡単に拡張・展開できるようにするツールと
ドキュメントをユーザーに提供することで、これを現実のものとするお手伝いをすることが目的です。

### 誰がSeleniumを利用するのか

世界で最も重要な企業の多くが、ブラウザベースのテストにSeleniumを採用しており、多くの場合、
他の独自ツールを使用した長年にわたる取り組みに取って代わっています。
人気が高まるにつれて、その要件と課題も増えてきました。

Webがより複雑になり、新しいテクノロジーがWebサイトに追加されるにつれて、可能な限りそれらに
遅れずについていくことがこのプロジェクトの使命です。オープンソースプロジェクトであるため、
このサポートは多くのボランティアからの惜しみない時間の寄付によって提供されます。
こうしたボランティアには全員、本業があります。

このプロジェクトのもう1つの使命は、より多くのボランティアがこの取り組みに参加することを奨励し、
強力なコミュニティを構築して、プロジェクトが新たに登場するテクノロジに対応し続け、
機能テスト自動化の主要なプラットフォームであり続けることができるようにすることです。
