web-dev-qa-db-ja.com

カピバラ、css要素内での検索

私は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タグにそれを含める方法がわかりません。

前もって感謝します!

17
ardavis

Capybaraのwithinマッチャーは最初の結果にのみ一致するため、複数のh2タグがある場合は、最初の結果のみが検索されます。

代わりに、have_cssオプションを指定して:textを試してください。

page.should have_css("#table", :text => "[Name]")
page.should have_css('h2', :text => 'stuff')
33
Dylan Markow

特定の要素を見つけるには:

page.find('#table').should have_text('stuff')
12
Paul Groves

私はすべての答えがうまくいくはずだと思いますが、今ではカピバラはもう使用しないはずです

expect(page).to have_css("#table", :text => "[Name]")
expect(page).to have_css('h2', :text => 'stuff')
3
João Vitor

私は次のようなことをしました:page.all(:css, 'button.btn-primary.days.active').size.should == 1

特定のクラスのセットを含む要素があるかどうかを確認します。
ただし、要素の特定のテキスト値を探す必要はありませんでした。要素の存在とその数を確認したかっただけです。

0
jacklin