Ubuntu Weekly Recipe

第662回 Docker+Selenium ServerでWebブラウザ自動操作環境を作る

この記事を読むのに必要な時間:およそ 4 分

今回は,Selenium ServerによるWebブラウザ自動操作環境を,Ubuntu上にDockerを使って簡単に構築する方法を紹介します。

Webブラウザの自動操作を可能にするSelenium

Seleniumは,Webアプリケーションのテストを,人が操作することなく自動で行うために開発されているソフトウェアです。本来は「テストの自動化」のために開発されたソフトなのですが,Webブラウザを用いて行っている業務の自動化や,Webサイトの情報を自動収集するスクレイピングなどにも使われています。

今回,主に紹介するのは「Selenium Server」を使う方法ですが,他に「Selenium IDE」というFirefoxおよびGoogle Chrome用の拡張機能も開発・配布されています。Selenium IDEを使えば,デスクトップ環境でWebブラウザの操作を記録し,簡単に再実行させることができます。記録内容をカスタマイズしたり,一から操作コマンドを書くこともできます。

一方,⁠Selenium WebDriver」というAPIを使えば,Python・Ruby・C#・Javaなどで書いたプログラムからWebブラウザを操作したり,内容を取得したり,スクリーンショットを撮ったりできます。プログラムから操作するのでSelenium IDEよりもはるかに高機能な自動化が可能です。

さらに,本記事で紹介するSelenium Serverを動かせば,リモートで動作するブラウザを操作することも可能です。決まった時間にスクリプトを実行し,Webブラウザを自動操作するなら,サーバー環境にSelenium Serverを導入しておくと便利です。たとえば,社員が社内システムにアクセスして時間をかけて行っている処理を自動化できるようになります。

Selenium Serverのセットアップ手順は複雑ですが,公式のDockerイメージを使えば簡単に導入できます。DockerイメージはUbuntuベースとなっているため,日本語フォントを入れるなどのカスタマイズも簡単です。

なお,VNCによるリモートデスクトップ接続により,Dockerコンテナ内で動作するWebブラウザが自動で動く様子を見ながら,操作するスクリプトのデバッグができます。Ubuntuデスクトップなら,前回の記事で紹介したリモートデスクトップクライアント「Remmina」がVNCに対応しています。もちろん,Windowsなど別のOSにVNCクライアントを入れ,Selenium Serverが動作しているDockerコンテナに接続することも可能です。

Dockerのインストール

UbuntuのレポジトリでもDockerのパッケージが提供されていますが,最新版がDockerのレポジトリからインストールできます。

インストールは,公式のドキュメントに記述されているとおり,以下のコマンドで行うことができます。

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

また,本記事ではdocker-composeコマンドを使った構築方法を紹介します。以下のコマンドを実行すれば,最新のdocker-composeコマンドが/usr/local/binにインストールされます。

$ COMPOSE_VERSION=$(git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oE "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1)
$ curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null
$ sudo chmod +x /usr/local/bin/docker-compose

なお,現在ログインしているユーザーで,sudoを使わずdockerコマンドを実行したい場合は,以下のコマンドを実行してdockerグループに追加し,再起動してログインしなおします。

$ sudo gpasswd -a $USER docker

著者プロフィール

小林準(こばやしじゅん)

Ubuntu Japanese Team リーダー。2005年より日本国内でUbuntuの普及活動を行っている。著書に,Linuxシステムの管理に必要な知識を解説した『独習Linux』がある。