DockerでSelenium【Djangoアウトプット】

この記事は 213 で読めます。


前回の記事でCronが動く環境が手に入ったので、今度はSeleniumが使えるようにします。

このログは、こちらのレポジトリでDjango+Dockerセットアップ後の環境を想定しています。

Seleniumはブラウザを使った自動化ツールで、例えばE2E(エンドツーエンド)テストで採用されています。
目的の検証を自動で行えるため、精度や時間やコストの面で恩恵が得られるのかなと思います。
また、スクレイピング目的でもよく使われているみたいです。

それでは実際に動く環境を作っていきます。
例によってDocker環境のため、こちらも調べるのが大変でした…

Seleniumコンテナのセットアップ

E2E(エンドツーエンド)テストで使われる場合は複数のブラウザコンテナをHubを介して制御するみたいですが、
僕の場合、スクレイピングなのでスタンドアローンのChromeコンテナのみをセットアップします。

djangoコンテナとLinksでつなげるのがポイントみたいですね。

ビルドします。

この時点で、デバッグビューワーとSeleniumのコンテナが手に入ると思います。

macではファインダーの「サーバーへ接続」で「vnc://localhost:5900」(パスワード:secret)を入力したらビューワーが起動しました。
どういう仕組みなのか謎です…
ちなみに、http://localhost:4444でSeleniumコンテナを確認できます。

DjangoにSeleniumをインストール

Djangoコンテナにはいり、 pipコマンドでSeleniumをインストールします。

これでSeleniumを動かせる環境も手に入りました。
この後は、例えば以下のようなコードを実行すると、バックグラウンドで処理をしてくれます。

「vnc://localhost:5900」でデバッグビューワーを起動していると、ビューワー内で実際にブラウザが立ち上がって処理を中身を視覚的に確認できます。

手っ取り早く確認したい方は下記のレポジトリとかいいかなと思います。

django-selenium-docker

以上です。

コメントを残す