Help us understand the problem. What is going on with this article?

Capybaraで嵌ったエラー集まとめ (随時更新)

More than 1 year has passed since last update.

1. PG::ConnectionBad: PQsocket() can't get socket descriptor

  • find(xxx).clickの後に画面遷移する前にテストコードが実行されてしまっている時に表示されたエラー
  • clickの後にsleepを挟めば直る
  • have_xxxとか使えば自動で待ってくれるんだろうけどうまく動かず、sleepでやり過ごしている
  • 追記 (2017/04/06) findやwithinは指定要素が表示されるまでデフォルトで2秒まで待ってくれるのでsleepを多用しない
scenario "move to hogehoge page", js: true do
  visit hogehoge_path
  find(".move-button").click
  expect(current_path).to eq fuga_path
end

2. ActiveRecord::StatementInvalid: PG::UnableToSend

  • 1と同様の理由で発生していたが、タイミングによってはこのエラーが出たりするので嵌った

3. double free or corruption

  • こちらも1と同様の理由で発生していたが、タイミングによってはこのエラーが出たりするので嵌った

4. Capybara::ElementNotFound: Unable to find css

こちらは以下の3つのいずれかに該当する時に表示される。特に非表示になっているのが原因の場合は特定に時間がかかり嵌った。

  • 対象の要素がない
  • 対象の要素が複数存在する
  • 要素が表示されていない(visible: false)

5. ActiveRecord::StatementInvalid:PG::UnableToSend: extraneous data in "T" message

  • 原因不明。稀に発生するが、基本はリトライすれば直る。

以下の記事が参考になりました。
Capybaraでハマらないために気をつけるべき4つのこと - Qiita http://qiita.com/shida/items/5ec16a1e0f07204b2a88

まだあったと思うので、今後追記します。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away