web-dev-qa-db-ja.com

カピバラ、IDとクラスでHTML要素をチェック

初心者からの2つの質問。

Q1-IDとクラスでHTMLノードの存在を主張することはできますか?たとえば、次の要素が存在するかどうかを確認するには、次のようにします。

<div class="drawer" id="first"....>

私はあなたが次のようなものを使うことができるのを見ました:

 page.should have_css('div.drawer')
 page.should have_css('div#first')

しかし、どういうわけか両方のパラメーターの存在を照会できますか?私は以下を試しましたが、機能しませんでした:

page.should have_selector("div", :class => "drawer", :id => "first")

Q2-「within」capybaraメソッドに2つのセレクターを追加することは可能ですか?つまり、次のようにしてスコープを制限できることを確認しました。

within("//div[@id='first']") do

しかし、なんとかしてid = 'first'とclass = 'drawer'を追加することで、そのDIVをフィルタリングできますか?

どうもありがとう!

18
mickael

セレクターを組み合わせることができます。

最初の質問では、以下はIDが「first」でクラスが「drawer」のdivをチェックします。

page.should have_css('div#first.drawer')

2番目の質問では、withinブロックは上記と同じcss-selectorを使用できます。

within('div#first.drawer') do

または、本当にxpathを好む場合は、次のことができます。

within("//div[@id='first' and @class='drawer']") do

Css-selectorsの適切なリファレンス: http://www.w3.org/TR/CSS2/selector.html

37
Justin Ko