Gentoo で poltergeist の remote debugging が上手く動かなかった話

Capybara の JavaScript driver の poltergeist には remote debugging なるものがあります。

昨日、テストが通らずはまっていた時に remote debugging のことを思い出してやってみるも自分の環境では動かず...

原因

remote debugging を使うには以下のように driver を登録する必要があります。

Capybara.register_driver :poltergeist_debug do |app|
  Capybara::Poltergeist::Driver.new(app, inspector: true)
end

Capybara.javascript_driver = :poltergeist_debug

そして、new に渡す引数が inspector: true の場合 poltergeist は以下の4つのコマンドから立ち上げるブラウザを決めるようです。

BROWSERS = %w(chromium chromium-browser google-chrome open)

参考: https://github.com/jonleighton/poltergeist/blob/master/lib/capybara/poltergeist/inspector.rb

私は Gentoo 上で google-chrome の stable を使っていて、コマンドとしては google-chrome-stable なので上記の BROWSERS の中には当然含まれていません。

解決方法

オプションの inspector には文字列を渡す事ができます。なので今回は自分が使用しているgoogle-chrome-stable を渡すことで事なきをえました。

Capybara::Poltergeist::Driver.new(app, inspector: 'google-chrome-stable')

最後に

最近 chrome のバージョンごと?(stableとかbetaとか)にパッケージがわかれたためこんなハマり方をしたのだと思いつつ、まだ落ちているテストを眺めているのでした。まる