【问题标题】:Capybara, checking HTML element by ID and ClassCapybara,通过 ID 和 Class 检查 HTML 元素
【发布时间】:2012-12-11 12:53:16
【问题描述】:

来自初学者的两个问题。

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 吗?

非常感谢!

【问题讨论】:

    标签: capybara


    【解决方案1】:

    您可以组合选择器。

    对于您的第一个问题,以下检查是否存在 id 为“first”且类为“drawer”的 div:

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

    对于第二个问题,within 块可以使用与上面相同的 css-selector:

    within('div#first.drawer') do
    

    或者如果你真的更喜欢 xpath,你可以这样做:

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

    一个很好的css选择器参考:http://www.w3.org/TR/CSS2/selector.html

    【讨论】:

    • 贾斯汀,我能说什么......非常感谢您的解释、示例和链接,太棒了!!! :)
    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    相关资源
    最近更新 更多