0

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

assert_select '.store .entry > img', 3

我知道它正在类商店内的类条目内的 html 中寻找标签。我不知道 > 是什么意思。事实上,这段代码未能通过测试,因为它最终返回值为 0 而不是 3。但是,如果我删除 > 并使用它

assert_select '.store .entry img', 3

该程序能够找到 3 个 img 元素。在这种情况下,“>”符号是什么意思?另外,为什么在书中指定包含该符号时找不到 img 标签,但删除该符号后它可以工作?

4

1 回答 1

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将找到两个示例中的元素。

于 2013-11-11T05:38:52.073 回答