今回は、Seleniumについて、仕組みや使い方などを初心者の方向けに解説します。
Seleniumとは
Seleniumとは、ブラウザを自動操作するためのツールです。
Power Automate等のRPAツールとは違うの?
最近では、「RPAツール」と呼ばれる自動化を行えるツールが多く存在します。WindowsのPCでは、標準アプリとしてPower Automateが入っていたりと、自動化がより身近なものとなっています。
Seleniumは、もともとUIテスト自動化のために誕生したものです。RPAは「Robotic Process Automation」の略で、人間が手作業で行うルーティンワークを自動化するツールです。また、RPAツールは予め用意されている部品を組みあわせて自動化します。
そういった意味ではRPAツールではないと個人的には思います。ただ、人によってこのへんの定義はバラバラで、SeleniumをRPAツールとして分類する人もいます。
Seleniumでできること
Seleniumでは、以下のようなことを実現できます。
他にも、Excelの操作、メール送信、画像の編集やサイズ変更なども可能です。
Seleniumのメリット
Seleniumの主なメリットを以下に記載します。
対応プラットフォーム・言語の多さ
Seleniumは、対応している環境が充実しており、様々な環境での実行が可能です。対応言語も多く、いちから学ぶ労力をカットしてローコストで開発できます。
ブラウザ | Windows、Linux、macOS |
プログラミング言語 | Java、Python、Ruby、JavaScript、C# |
柔軟性の高さ
Power AutomateなどのRPAツールでは、あとから修正・変更するときに、場合によってはフローを変更するのが難しい場合があります。また、RPAツールはプログラミングスキルが無くても操作できる反面、何かトラブルがあったときに対応できる人がいない可能性があります。
Seleniumは、修正・変更が比較的容易にでき、何かトラブルがあった場合もソースコードを見て原因を特定できることが多いです。この点から、既にエンジニアとして働いている方からは「RPAツールよりもプログラムを書いたほうが寧ろ楽!」なんて声もよく聞きます。
Seleniumの種類
Seleniumには、「Selenium RC」「Selenium IDE」「Selenium Webdriver」「SeleniumGrid」という4種類があります。このなかで、よく使われている2つについて詳しく解説します。
Selenium IDE
Selenium IDEとは、ブラウザ操作の記録・再生ができる拡張機能(アドオン)です。ブラウザ操作を記録して、それを再生することで自動操作ができます。
拡張機能なので追加したらすぐに使うことができ、プログラミングも不要なのでとても手軽で初心者の方におすすめです。
Selenium IDEの使い方は以下記事で解説しています。
Selenium Webdriver
Selenium Webdriverとは、ブラウザを自動操作するためのフレームワーク(枠組み、よく使うコードの集まり)です。Selenium Webdriverを使うことで、Google ChromeやFirefoxなどのブラウザを自動で開いたり、クリックしたり、入力したりすることができます。
本記事では、以降の「Selenium」は、全て「Selenium Webdriver」として解説します。
Seleniumのしくみ
Seleniumは、PythonやJavaなどのプログラミング言語を用いて実行します。
Seleniumはフレームワークであり、プログラムで「ブラウザを開いて!」と書けば、Selenium側でいろいろいい感じに処理してブラウザを開くようにしてくれます。
Seleniumのインストール方法
Seleniumを使うには、
- Seleniumのインストール
- ドライバーのインストール
が必要です。詳しいインストール手順は以下記事にて解説しています。
【注】定期的にドライバーの更新が必要
ブラウザのバージョンは、日々更新されています。ブラウザとドライバーのバージョンが異なっていると、Seleniumが実行できないことがあります。
バージョンを合わせる方法については、以下記事にて解説しています。
Seleniumの基本的な使い方
では、実際にSeleniumを動かしてみたいと思います。
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.google.com/?hl=ja')
time.sleep(3)
driver.close()
上記のコードを、ご自身の環境にそのままコピペして実行してみてください。こちらはGoogleのトップページを開いて、3秒待機してからブラウザを閉じるコード(Python)です。
上記のようにブラウザが自動で開き、3秒後に閉じることを確認できれば成功です。
主なメソッド一覧はこちら
ブラウザのクリック、プルダウンの選択、要素の取得、スクリーンショットを撮るなど、Seleniumでよく使うメソッド一覧を以下記事にまとめています。
リファレンスとして参考にしていただければと思います。
まとめ
今回は、Seleniumとは何か、仕組み、使い方などについて解説しました。
UIテストを自動化することを目的として誕生したSeleniumは、現在ではテスト自動化だけでなく、スクレイピングや繰り返し作業の効率化など様々な用途で使われています。RPAツールは有料のものが多いなか、Seleniumは完全無料でネット上にドキュメントも豊富に存在するので、初心者の方でも挑戦しやすいのではないかと思います。
私自身も仕事で定期的に行うテストの自動化に使うことがあり、備忘録を兼ねてSelenium関連の記事を他にも投稿しています。もし、何かうまくいかない、エラーを解決できないなどお困りごとがありましたら、お気軽に問い合わせまたはコメントでご連絡ください♪
コメント
エクセルでカラオケリストを作り、リストの歌項目をクリックしクロームでyoutubeのカラオケ動画にリンクさせ、カラオケ動画を再生させています。この時次の事を自動でしたいのですが、やり方が分かりません。1. 動画が再生できたが画面を最大化する 2.再生が終了したら、自動でWebページを閉じたい。seleniumを使えばできそうですがどうでしょうか
コメントありがとうございます。
すでにSelenium VBAでマクロを組んでいるのですね。
Seleniumを使えば画面の最大化、Webページを閉じることは可能かと思います。
再生が終了したら」を実現するには各動画の再生時間で閉じるようにするか、
待機処理で「もう一度再生」ボタン(要素)が取得できるまで待つようにするなどの方法になるかと思います。
すみません、書き忘れていました。使用しているOSはwindos11,Webブラウザーはgoogle Chrome ,ExcelはOffice 365,Excel VBA でカラオケボックスのリモコンのように使用できるよプログラムを組んでいます。