:2019-09-06ブラウザを使うオペレーター業務や運用の自動化に、seleniumというフレームワークがよく使われています。PCにインストールされたブラウザをプログラミングで直接操作できるようになり、とても便利です。今回、このseleniumを使って試したいことがあって、CUIでも手軽に扱える環境をdockerで構築しました。その知見をシェアします。下記はディレクトリ構成です。hubにseleniumのイメージがありました。node.jsの使用に限定されているようだったので、Python用にdockerfileを書くことにしました。python:3.7-alpine...イメージのベースは軽量なAlpineを使います。chromiumはGoogleのchromeブラウザをベースにしたオープンソースのプロジェクトで、速度と安定性を売りにしています。今回はこいつを使います。chromium-chromedriver...これはseleniumでchromiumを動かすためのドライバです。そのほか、日本語対応のためにGoogleのnotoフォントをインストールしています。selenium最後の行で、seleniumをインストールしています。composeを使うことにしました。下記はymlファイルの中身です。./app:/apptest.pyseleniumのテスト用に書いたpythonのコードです。desired_capabilities=o.to_capabilities())d.get('https://www.google.com')print(d.title)d.quit()CUIで使うには、seleniumのドライバーに--headlessなどいくつかオプションを追加する必要があります。webdriver.Chromeを使うより、Service()を使う方が高速に処理できるようです。