Я пытаюсь подсчитать, сколько звезд выбрано на основе этого 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 соответствующих элемента, поэтому мне нужен код для его подсчета. Можете ли вы помочь мне выяснить, что не так с моим кодом?