私はRuby on Rails 3、Cucumber、andCapybara
私はかなり長い間検索してきましたが、cssタグ内の特定のページ要素を見つける方法がわかりません。私の場合、名前が「ようこそ[名前]」ではなく、テーブル内にあることを確認する必要があります。
私は次のようなことを試しました:
within('table') do
page.body.index("[Name]")
end
そして、私はid='table'
のテーブルを持っています。
しかし、次のようなcss要素に対してこれを行う方法を知りたいです。
within('h2') do
page.body.should have_content ('stuff')
end
私の問題はpage.bodyに関係していると思いますが、特定のcssタグにそれを含める方法がわかりません。
前もって感謝します!
Capybaraのwithin
マッチャーは最初の結果にのみ一致するため、複数のh2
タグがある場合は、最初の結果のみが検索されます。
代わりに、have_css
オプションを指定して:text
を試してください。
page.should have_css("#table", :text => "[Name]")
page.should have_css('h2', :text => 'stuff')
特定の要素を見つけるには:
page.find('#table').should have_text('stuff')
私はすべての答えがうまくいくはずだと思いますが、今ではカピバラはもう使用しないはずです
expect(page).to have_css("#table", :text => "[Name]")
expect(page).to have_css('h2', :text => 'stuff')
私は次のようなことをしました:page.all(:css, 'button.btn-primary.days.active').size.should == 1
特定のクラスのセットを含む要素があるかどうかを確認します。
ただし、要素の特定のテキスト値を探す必要はありませんでした。要素の存在とその数を確認したかっただけです。