2012-12-11 116 views
15

來自初學者的兩個問題。水豚,通過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篩選DIV = '第一' 和class = '抽屜' 不知何故?

非常感謝!

回答

35

您可以組合選擇器。

對於第一個問題,對ID爲「第一」的一個div以下檢查和類「抽屜」:

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

對於第二個問題,在within塊可使用相同的CSS-選擇如上:

within('div#first.drawer') do 

或者,如果你真的喜歡的XPath,你可以這樣做:

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

爲CSS選擇器的一個很好的參考:http://www.w3.org/TR/CSS2/selector.html

+0

賈斯汀,我能說什麼....非常感謝解釋,例子和鏈接,只是真棒! :) – mickael