driverについてheadlessでseleniumを実行すると言えばつい最近まではPhantomJSでしたが、PhantomJSにはバグが多く存在しているにも関わらず、開発は終了してしまいました。headlessで実行できるということはGPUを使用せずに実行できるということになります。通常のwebdriverでは実行するとブラウザが立ち上がって処理を行っていきますが、headlessではブラウザが立ち上がることなく処理が行われます。GPUを使用しないということはjenkinsなどで仮想のデスクトップ環境を用意する必要もなくなるわけです。前述したようにheadlessの代表格だったPhantomJSの多くのバグを残したまま開発が終わってしまいました。そこで登場した期待の新星がChromeのheadlessモードです。Chromeのheadlessも登場したばかりの頃は数多くのバグがあって使い物になりませんでしたが、バージョンが上がるにつれてかなり安定してきたということなので既存のコードをChromeのheadlessモードで実行したところちゃんと動いてくれました。Googleさんが開発しているシェアNo.1のChromeですから、headlessモードの開発が終わるということもなかなかないのでしょうか。今あるバグの修正や新機能の実装も期待できるのです。Service)と呼ばれるサービスで、アプリケーションを実行するためのプラットフォームです。Railsチュートリアルなどでも利用されている、軽量のアプリ(現在は500MBまで)なら無料でデプロイできるサービスです。herokuにはBuildpackというものがあって、これをインストールすることで様々な実行環境を簡単にセットアップできます。chromeやchromedriverのBuildpackもあるので、これならheroku上で動いてくれるんじゃないかと思い格闘してみたところ無事に実装できました。前置きが長くなりましたが、今回はherokuでChromeDriverのheadlessモードをseleniumで定期実行するということを紹介したいと思います。さあ実装seleniumの実装ぶっちゃけ、seleniumの実装が一番悩んだところで、他はすんなりいけました。この記事を読む多くの方はここだけ見て離脱するのではないでしょうか。普通のseleniumのコードと異なるのはdriverの宣言の仕方だけです。以下のように書いてください。