首页 > 解决方案 > 尝试计算页面上存在的元素数时出现不明确的匹配错误

问题描述

我正在尝试根据此 HTML 计算选择了多少颗星

<div class="c-fld">
  <ul class="js-review-star c-rating">
    <li data-value="1" title="Very Bad product" class="c-rating__unit is-selected">
      <span class="c-rating__icon c-icon c-icon--star c-icon--large"></span></li>
    <li data-value="2" title="Bad product" class="c-rating__unit is-selected">
      <span class="c-rating__icon c-icon c-icon--star c-icon--large"></span></li>
    <li data-value="3" title="Average" class="c-rating__unit is-selected">
      <span class="c-rating__icon c-icon c-icon--star c-icon--large"></span></li>
    <li data-value="4" title="Good stuff!" class="c-rating__unit">
      <span class="c-rating__icon c-icon c-icon--star c-icon--large"></span></li>
    <li data-value="5" title="I love it!" class="c-rating__unit">
      <span class="c-rating__icon c-icon c-icon--star c-icon--large"></span></li>
  </ul>
</div>

从那以后,我使用这种方法:

def change_review_rating
  @count = page.all('.c-rating__unit.is-selected').count
  puts = "number of element: #{@count}"
end

我还尝试使用另一种形式的选择器,例如:

CSS

.c-rating .is-selected

路径

//li[contains(@class, 'is-selected')]

但他们都回来了Ambiguous match, found 3 elements matching xpath/css (Capybara::Ambiguous)。我知道有 3 个元素匹配,这就是为什么我需要代码来计算它。你能帮我弄清楚我的代码有什么问题吗?

标签: htmlruby-on-railscapybara

解决方案


推荐阅读