2012-12-11 49 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