1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Capybaraで非表示要素がdisabledであることを確認するテストでハマりました。

Posted at

概要

タイトル通り、Capybaraで、hogeという非表示要素がdisabledであることを確認するテストではまりました。

(1)expect(page).to have_field '#hoge', disabled: trueと書いた場合は、そもそもlocatorに#hogeと書いたのが原因でテストが落ちたぽい。

     Failure/Error: expect(page).to have_field '#hoge', disabled: true

       expected to find field "#hoge"
       Note: It appears you may be passing a CSS selector or XPath expression rather than a locator. Please see the documentation for acceptable locator values.

        but there were no matches

(2)expect(page).to have_field 'hoge', disabled: trueと書いた場合は、hogeというvisibleな要素を探したけど見つからなかったというエラーになったので、もしかしてこのhogeというのは非表示要素なのかも?とここで気づく

     Failure/Error: expect(page).to have_field 'hoge', disabled: true
       expected to find visible field "hoge" but there were no matches. Also found "", which matched the selector but not all filters.

(3)expect(find('#hoge', visible: false)).to be_disabledと修正する。

hogeという非表示要素を探してから、その要素がdisabledであることを確認したらテストが通った。

参考にした記事

非表示要素はCapybaraのfindで検索対象になるのか

使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」

ありがとうございました😊

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?