2012-12-11 4 views
15

初心者からの2つの質問。IDとクラスでHTML要素をチェックするカピバラ

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-は、カピバラの方法、すなわち「内」、私はあなたがやっによって範囲を限定することができます見てきたに2つのセレクタを追加することが可能です:

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

ただし、id = 'first'とclass = 'drawer'を何らかの形で追加してDIVをフィルタリングできますか?

多くの感謝!

答えて

35

セレクタを組み合わせることができます。最初の質問、「最初の」IDを持つdivのための次のチェックとクラス「引き出し」について

:2番目の質問について

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

、上記と同様、CSSセレクタを使用することができwithinブロック:あなたは本当にXPathを好む場合

within('div#first.drawer') do 

または、あなたが行うことができます:

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

CSSセレクタの参考資料:http://www.w3.org/TR/CSS2/selector.html

+0

ジャスティン、私は何と言うことができますか?説明、例、リンク、ちょうど素晴らしい!!! :) – mickael

関連する問題