Seleniumとは
Seleniumとは、Webブラウザでのテストを自動化するためのフレームワークのことです。例えばWebアプリケーションの開発の際、本来であれば人が操作してテストを実施します。
Seleniumを利用することで、Webブラウザ上の操作を自動化することができます。Webブラウザ上の操作とは、具体例を挙げるとHTMLのタグ名・テキスト・CSSといった情報の取得などです。この他にも幅広い操作が可能なので、テストの他にもスクレイピングで使用することも可能です。
【参考】:Selenium
フレームワークとは
まずは前提知識として、フレームワークについて抑えておきましょう。フレームワークとは、必要なツールや機能があらかじめ揃っている枠組みを指します。そして、今回ご紹介するSeleniumはWebアプリケーションのテストが目的で作られたフレームワークです。
そのため、Seleniumにはテストに必要なツールやよく使われる機能が予め用意されていると理解しましょう。
スクレイピングとは
スクレイピングとは、データを収集して加工することです。例えば、指定のWebサイトから情報を集め、データを加工して特定のファイルにまとめるといった作業などです。マーケティングや情報の解析をする際に使用されることが多いです。
Seleniumの歴史
Seleniumは2004年にアメリカのシカゴの会社、ThoughtWorksで始まりました。*当時、Jason Hugginsという人物が、社内のアプリケーションをテストするためにツールを作ったのが始まりです。
*当初は社内のツールとして活用していましたが、これをオープンソースにしたことをきっかけに様々な人がSeleniumを使用し始め、IT技術者を中心に広がっていきました。
【参考】:Selenium History
Seleniumの特徴
Seleniumの特徴は、幅広いブラウザの操作が可能な点と、種類の多さ、利用環境が豊富という点が挙げられます。ここからは、それぞれのポイントを詳しく解説します。
ブラウザの操作ができる
Seleniumではブラウザの操作が可能なため、Webアプリケーションのテストなどでよく利用されます。ブラウザの操作は、例えば要素の検索や、要素の操作などが挙げられます。それぞれ、詳しく見ていきましょう。
【参考】:Web elements
■要素の検索 要素の検索は、例えば指定のサイトのリストタグのテキスト情報を取得したり、指定のテキストの情報を取得したりできます。公式サイトのドキュメントに、サンプルソースが掲載されていますので、ソースを参照したい方は参考サイトをご覧ください。
【参考】:Web elements
■要素の操作 要素の操作は基本的には、クリック・キーを送信する・クリア・送信・選択です。クリックは全ての要素に適用できますが、その他は指定の条件を満たしている場合に操作が実行できます。
また、その他にも入力デバイスで操作をしたい場合には、action APIというインターフェースを使用できます。例えば、マウス・ペン・キーボードといったデバイスで操作する場合には、このインターフェースを使用します。
【参考】:Interacting with web elements
Seleniumには様々な種類がある
Seleniumは2004年にオープンソース化されて以降、様々なツールやフレームワークが公表されていきました。現在、公開されている種類を後述にてそれぞれ解説します。
Seleniumを利用するメリット
Seleniumを利用するメリットは、一言でいえば作業効率の向上と利用しやすさであるといえます。それぞれのメリットについて、詳しく説明していきます。
工数削減を見込める
Seleniumでプログラムを組んでおけば、指定の操作は自動化してくれますので作業時間を大幅に減らせます。また人が手作業で行うよりも正確ですので、ミスが起こりにくい点も工数削減に繋がるポイントです。
作業時間の短縮とミスによる対応工数を減らせるため、結果として工数削減ができるというのがメリットだといえます。
テストの効率化を見込める
Seleniumでテストの自動化をすることで、効率化を図ることができます。Seleniumの公式ドキュメントには、いくつかのガイドラインが用意されています。推奨・非推奨の事項がそれぞれ記載されていますので、実際にテストをする際には参考URLからドキュメントのページを参照してください。
【参考】:Encouraged behaviors
無料で利用できる
Seleniumはオープンソースのため、無料で利用できます。オープンソースとは、再配布自由でソースコードが公開されているソフトウェアを指します。
そのためSeleniumは、ライセンス料などを支払うことはありません。他のソフトウェアを使用するときには、利用料が発生する場合もあります。しかしSeleniumは、そのような初期費用がかからないので、個人でも気軽に勉強に取り組みやすいです。
ちなみにSeleniumには認定テストもありませんので、自主的に公式ドキュメントやコミュニティを活用してSeleniumを利用します。無料で気軽に始められる点はメリットの1つといえます。
公式サイトが日本語に対応している
公式サイトは、英語・日本語・中国語・ポルトガル語から好きな言語を選択できます。ページ上部のメニューを見ると、右上に言語選択用のプルダウンがありますので、ここから日本語を選びましょう。
他のフレームワークやツールの公式ドキュメントを見ると、日本語に対応していないものもあります。Seleniumは日本語にも対応しているので、これはメリットの1つといえます。
Seleniumの種類
Seleniumには、様々なツールが用意されています。各ツールはそれぞれ機能が異なりますので、実際に使う前にしっかり把握しておきましょう。またSeleniumを利用する際は、バージョンの確認も併せて行いましょう。
WebDriver
WebDriverは、Webサイトのテストを自動化するタイミングで使用します。WebDriverはそれぞれのブラウザのAPIを使用して、テストを実行します。
Selenium IDE
Selenium IDEは、テストケースを作成するときに使用するツールです。テストケースの再利用や、クロスブラウザ、デバッグにも対応しています。 Selenium IDEを使用するときには、ブラウザごとに用意されている拡張機能をインストールするだけですぐに使えます。参考URLに記載した公式サイトから、インストールページへ移動できます。
【参考】:Selenium IDE
Selenium Grid
Selenium Gridは、テストケースの実行をするときに使用します。特に、複数の端末でテストを並行して実施するときにSelenium Gridが役に立ちます。また他にも、異なるブラウザのバージョンでテストを行う場合や、クロスプラットフォームテストを実施する際にも使用します。
【参考】:Grid
Seleniumの利用環境
Seleniumの利用環境は、幅広いプログラミング言語やブラウザが用意されています。ご自身が使用したい言語や、ブラウザが利用可能かどうか事前に確認しておきましょう。
対応しているプログラミング言語
Seleniumが対応しているプログラミング言語は、Java・Python・C#・Ruby・JavaScript・Kotlinです。Ruby、JavaScriptといったフロントエンドのプログラミング言語のみでなく、幅広い言語に対応しています。そのため上記のプログラミング言語を学んだことがある人は、自分が使いやすい言語を選ぶことも可能です。
対応OS
Seleniumが対応しているOSは、Mac・Windows・Linux・CentOS・Ubuntuです。対応しているバージョンについては、使用する際に公式サイトを確認しましょう。
対応ブラウザ
Seleniumが対応しているブラウザは、Google Chrome・Microsoft Edge・Firefox・Safari・Microsoft Internet Explorerです。それぞれのブラウザによって固有の機能もありますので、詳細は公式サイトを参考にしてください。
【参考】:対応ブラウザ
Seleniumを習得して、業務の効率化を目指そう
フロントエンドやWebアプリケーションの開発を行っている方や、これからフロントエンドにチャレンジしたいと考えている方は、是非Seleniumを使用してみましょう。
またメリットの中で述べた通り、Seleniumは無料のオープンソースです。ライセンス料金がかからないので、個人でも取り組みやすい分野になっています。Seleniumは対応しているプログラミング言語も多いので、対応言語を既に習得している人にとってはさらに取り組みやすい分野です。
是非、Seleniumを習得して、業務の効率化やスキルアップを目指してください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから