rails“>”是什么是指assert_select元素的内部?

时间:2013-11-11 05:29:47

标签: ruby-on-rails testing select assert

在我正在使用的书中,有一个关于代码留置权的测试

assert_select '.store .entry > img', 3

我知道它正在类类商店里面的类入口的html中寻找标签。我不知道>手段。实际上,此代码未通过测试,因为它最终返回值为0而不是3.但是,如果我删除了>并使用此

assert_select '.store .entry img', 3

该程序能够找到3个img元素。什么是“>”这种情况下的标志意味着什另外,为什么当书中指定的符号被包含时,它找不到img标签,但是当删除该符号时它是否有效?

1 个答案:

答案 0 :(得分:0)

>表示只匹配具有类img的元素的直接子元素的entry个元素。这意味着img将匹配:

<div class="store">
  <div class="entry">
    <img src=""/>
  </div>
</div>

但不是这一个:

<div class="store">
  <div class="entry">
    <p>
      <img src=""/>
    </p>
  </div>
</div>

删除后,会找到两个示例中的img元素。