Вам просто нужно рассчитывать на элемент, который вы хотите проверить внутри - например,
heading = page.find('li#campaign_1 .media-heading.name')
expect(heading).to have_content('Campaign_1')
Другой вариант (более полезный, когда у вас есть несколько вещей для проверки) - это метод within
, который охватывает на что ссылается page
within 'li#campaign_1 .media-heading.name' do
# here page will refer to the .name element
expect(page).to have_content('Campaign_1')
end
Наконец, вы можете просто сделать все это в одном ожидании, используя опции text
или exact_text
expect(page).to have_css('li#campaign_1 .media-heading.name', text: 'Campaign_1')
Объединение нескольких из этих методов вместе дадут
within 'li#campaign_1' do
expect(page).to have_css('.media-heading.name', text: 'Campaign_1'
expect(page).to have_css('.media-heading.country', text: 'United Kingdom')
end
Если Вы захотите использовать МАКСА (идентификатор) вместо количества после чтения комментариев от Мира тогда, то следующий SQL даст Вам, что Вы хотите
SELECT COALESCE(MAX(id)+1, 0) FROM words
Можно запросить фактическое количество строк с
SELECT Count(*) FROM tblName, см. https://www.w3schools.com/sql/sql_count_avg_sum.asp
В SQL ПУСТОЙ УКАЗАТЕЛЬ = ПУСТОЙ УКАЗАТЕЛЬ является ложью, обычно необходимо использовать, ЯВЛЯЕТСЯ ПУСТЫМ:
SELECT CASE WHEN MAX(id) IS NULL THEN 0 ELSE (MAX(id) + 1) END FROM words
, Но, если Вы хотите количество строк, необходимо просто использовать count(id)
, так как решение даст 10, если строки будут (0,1,3,5,9), где оно должно дать 5.
, Если можно гарантировать, Вы всегда будете идентификаторы от 0 до N, макс. (идентификатор) +1 май быть быстрее в зависимости от индексной реализации (это может быть быстрее для пересечения правой стороны сбалансированного дерева вместо того, чтобы пересечь целое дерево, рассчитав.
, Но это является очень определенным для реализации, и я отговорил бы от доверия ему, не в последнюю очередь потому что это блокирует Вашу производительность к определенному DBMS.