clock2018.07.16 11:56
SERVICE
home

日々のブラウザ操作業務をマクロで効率化 ~SeleniumとKatalonを使ってみた~

AUTHOR :   ギックス

Katalon + Selenium =単純作業から解放される未来

情報検索や買い物、事務手続きなど様々な作業をブラウザを通してインターネットで済ませることができる時代です。移動することなくアプリケーションもインストールする必要もなく非常に楽なのですが、もっと楽したいと思ったことはありませんか? 事務作業では週末や月末に同じようなブラウザ操作をしていませんか? インターネット上のオープンデータが更新されるたびに記憶を掘り返してデータダウンロードしていませんか? 今回はこんなブラウザ操作を自動化方法についてのお話です。

ブラウザマクロとは

「ブラウザマクロ」という製品種類があるわけではありませんが、本稿ではブラウザ操作をマクロ(自動)化したものを「ブラウザマクロ」と呼ばせてもらいます。事務作業などのブラウザ操作の中には「ID+パスワードを入力してログイン → ダウンロードメニューをクリック → ダウンロード条件を入力 → ダウンロード実行ボタンをクリック」のように決まった操作を定期的に実行する単純作業があると思います。この一連の操作をマクロとして記録・実行する事で手を動かさなくても自動でやってくれるのがブラウザマクロです。

ブラウザマクロには大きく分けて2種類あります。1つはページ内の構造を解釈してパーツに命令を実行するもの、もう1つはマウスやキーボードの操作を記録するものです。前者の方はページ内のHTMLタグやJavaScriptなどに対して直接操作命令を出せるため、細かい操作や多少の画面レイアウト変更にも対応できます。後者はマウスカーソル座標から入力オペレーションを再現するため、ページ内の構造が複雑であったり、フラッシュなどのアプリが組み込まれていても対応できますが、画面レイアウトの変更には対応できません。

ブラウザマクロ比較

最近では業務効率化の時代の流れに乗って、ブラウザマクロと簡易的なETL処理を組み合わせたRPA(Robotic Process Automation)ツールが幾つか出ていますが、どれも結構いいお値段の製品ばかりです。今回は開発者向けではありますが、無償で高機能な2つのブラウザマクロをご紹介します。

Selenium

システム開発業界の中でデファクトスタンダードになっているブラウザマクロがSeleniumです。ECサイトや業務システムなどのWebアプリなどの開発現場では短い期間でサイトのアップデートが行われています。アップデートした機能自体の動作確認は当然行いますが、他の機能にアップデートの影響がないかも確認する必要があります。その様な場面でSeleniumが使われています。

Selenium WebDriver

Seleniumはオープンソースのツール群であり、世界中の有志たちによってアップデートされています。ツール群の1つに「Selenium WebDriver」というものがあり、これがSeleniumのメインツールになります。Selenium WebDriverはページ内の構造を解釈するタイプのブラウザマクロです。ページ内の操作命令をプログラミングによって記述する必要はりますが、JavaやJavaScript、Pythonなど多くのプログラミング言語に対応し、それほどコーディングスキルは必要ありませんし、インターネット検索すれば情報も沢山あります。

また、Chromeや Internet Explorer などの多くのブラウザに対応できるため、ブラウザマクロを1つ作ってしまえば簡単に複数のブラウザで動作確認ができます。

Selenium IDE

ブラウザマクロのプログラミング自体は難しいものではありませんが、ページ内のHTMLタグのパーツを正しく指定するためにはHTML知識必要になり、膨大な文字列情報から探すのは根気のいる作業になります。そのため、ブラウザ上でのマウスやキーボードの操作をマクロとして記録して、プログラムコードを自動生成してくれるツールが「Selenium IDE」になります。

Selenium IDE はFirefoxブラウザのプラグイン(追加機能)として動作し、マクロを記録・実行してくれます。ただ、悲しい事に Selenium IDE は2017年に開発終了し、その後はバージョンアップが行われていません。そのため、最新のFirefoxブラウザには対応していないため、現在は事実上使えません。Selenium IDE と同様のツールはSeleniumのツール群にもいますが、どれも Selenium IDE には劣ります。

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)
伊藤 望 戸田 広 沖田 邦夫 宮田 淳平 長谷川 淳 清水 直樹 Vishal Banthia
技術評論社
売り上げランキング: 30,173

Katalon

Selenium IDE の開発終了は関係者の中で悲劇そのものでした。その救世主となったのがKatalonです。Katalonのフルパッケージの Katalon Studio は Selenium をベースにした使いやすくしたもののようで、使うこと自体は無償ですが、サポートを受ける場合は有償のようです。この中の一部機能である「Katalon Recorder」が Selenium IDE の代わりとなるツールです。

Katalon Recorder はChromeブラウザのプラグインとして動作します。操作方法は非エンジニアでも使えるほどシンプルになっており「ブラウザから Katalon Recorder 起動 → Recordボタンをクリック → ブラウザを操作 → Stopボタンをクリック」するだけでブラウザ操作をマクロ記録してくれます。マクロ実行する場合はPlayボタンをクリックするだけです。(詳しくはYouTubeをご覧ください)

Katalonからノンプログラミングでマクロ作成してSeleniumで自動バッチにする

Katalon Recorder を使えばノンプログラミングでブラウザ操作をマクロ記録し、実行してくれます。これだけでも十分事務作業は軽減ざれると思います。しかし、まだ「ChromeブラウザからKatalon Recorder を起動して、Playボタンをクリックする」っという手作業が残っています。これを完全自動化するためには Katalon Recorder からSeleniumを実行するためのプログラムコードをエクスポートし、Seleniumバッチ化することができます。エクスポートは Katalon Recorder のExportボタンから行え、Selenium WebDriver の対応言語を選択するだけです。Seleniumバッチ化する場合は多少のプログラミング知識は必要になりますが、ゼロからブラウザ操作命令をプログラミングするよりはずっと楽です。

Katalon Recorder も Selenium WebDriver も完璧ではありません。ページ上のボタンやリンク、テキストボックスなどのパーツにIDやNAMEなどの一意にできる情報が割り振られていれば問題ないですが、それらがないと上手くマクロ記録できなかったり、複雑なパーツ指定方法を記述する必要があります。また、JavaScriptなどでページ遷移することなく動的なページを実現している場合は、画面表示が変わる前にマクロ操作が実行されることがあるため、待ち時間処理をプログラミングで追加するなど微調整が必要になります。

SERVICE