Получена неоднозначная ошибка совпадения при попытке подсчитать количество элементов, существующих на странице - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь подсчитать, сколько звезд выбрано на основе этого 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

XPATH

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

но все они возвращаются Ambiguous match, found 3 elements matching xpath/css (Capybara::Ambiguous). Я знаю, что есть 3 соответствующих элемента, поэтому мне нужен код для его подсчета. Можете ли вы помочь мне выяснить, что не так с моим кодом?

...