@kyanny's blog

My thoughts, my life. Views/opinions are my own.

capybara-webkit で Invalid Date エラーが出る場合の対処法

capybara-webkit は QtWebKit を使うが、 QtWebKit が Qt 4 でビルドされていると Invalid Date エラーが発生することがある。 QtWebKit を Qt 5 でビルドしなおせば解決する。

Improper date parsing · Issue #570 · thoughtbot/capybara-webkit · GitHub

  • new Date('2013-12-31'); はエラーになる。日付はなんでもよくて、 YYYY-MM-DD というフォーマットがまずい。
  • new Date('Dec 31, 2013'); はエラーにならない。なお、どちらも Chrome や Firefox などの Web ブラウザではエラーにならない。

Mac OSX を使っていて Homebrew で Qt をインストールしている場合に capybara-webkit を明示的に Qt5 でビルドしたときの作業ログ。

$ brew update
$ brew uninstall qt
$ brew install qt5
$ export PATH=/usr/local/opt/qt5/bin:$PATH
$ gem install capybara-webkit -v 1.1.0 -- --with-cppflags=-I/usr/local/opt/qt5/include --with-ldflags=-L/usr/local/opt/qt5/lib