🕌

Capybara の fill_in 対象はラベル以外でも指定できることを思い出そう

2020/10/27に公開

system test を書いていて、少しハマりました。

Capybara::ElementNotFound:
  Unable to find field "Hoge" that is not disabled

こんな感じで、正しいラベルを指定しているはずなのに、怒られる。

ふむ。
form をどう作っていたかと言うと、

f.label :Hoge
f.text_field :fuga

みたいな感じでした。
つまり、カラム名は fuga であり、 fuga を登録するためのフォームだけど、ラベル名は変えたいという場合です。

対応

input タグの name 属性を使って入力フィールドを指定するようにしました!

fill_in 'user[fuga]', with: 'fugafuga'

Railsだと name 属性は モデル名[カラム名] みたいな感じになっているはずなので、それを指定してやります。

これで通りました!!


🧐
詳しくは調べていませんが、普通に

f.label :fuga
f.text_field :fuga

にしていたら問題無かったかと思います。

ラベル名だけ変えたい時に起きるのかもしれません...?
詳しい方教えて頂けると嬉しいです🙏

Discussion