RSpec (Capybara) で複数の同一要素の個数を数えたり特定したりする方法

結論

page.all(.hoge.fuga) というふうに書き、戻り値が配列になるのでそれを取り扱う。

.foobar.hogehoge という要素がページの中に 3つ あるとします。

このとき「要素が 3つ あること」をテストするには次のように書きます。

expect(page.all('.foobar.hogehoge').count).to eq 3

「2つ目の要素をクリックする」ためには次のように書きます。

page.all('.foobar.hogehoge')[1].click

補足

page.all('.foobar.hogehoge') を変数に格納しておくと、複数箇所で使い回すときに記述量が減るかもしれません*1

*1:テストを直感的に読み進めていけること、とはトレードオフでしょう

Powered by はてなブログ