【Ubuntu】【xvfb】仮想ディスプレイを使用する【SW】

概要

Selenium 実行時に、ブラウザが
・Headless (非可視) だと動作しない
・通常モード(可視)だと動作する
ということがある。
 
このとき、コンソール起動環境だとブラウザが立ち上げられないという問題がある。
この問題を回避するために仮想的なディスプレイを起動する Xvfb を使用する。
 

環境

  • Ubuntu 18.04
  • Google Chrome Driver 2.43
  • Python 3.6
  • Selenium

 

インストール

Xvfb と同時に GUI 表示のためのライブラリをインストールする

% sudo apt-get -y install xorg xvfb gtk2-engines-pixbuf

 
こちらのサイト様より、フォント関連のエラー回避のためにフォント関連も一緒にインストールする。

% sudo apt-get -y install dbus-x11 xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic xfonts-scalable

 
こちらのサイト様より、ImageMagic は使わないので下記手順は不要かも知れないが実行しておく。

% sudo apt-get -y install imagemagick x11-apps

 

起動

1. Xvfb の起動

Xvfb が未起動状態*1であるならば起動させる。

% Xvfb -ac :99 -screen 0 1280x1024x16

 

2. DISPLAY 環境変数を設定する

% export DISPLAY=:99

 

3. Selenium を実行する

当然, headless を指定してはいけない。

*1:ps -ef |grep -i xvfb や pidof Xvfb で確認する