Как утверждать на количестве строк таблицы HTML у рубиновой капибары использования + огурец

Я пытаюсь справиться с веб-разработкой BDD в Ruby с помощью огурца + капибара, и я упорно продолжен, что должно быть легкой задачей - только для проверки количества строк в таблице. Намерение того, чего я пытаюсь достигнуть, является чем-то вроде:

page.should have_xpath("//table[@id='myTable']")
find("//table[@id='myTable']/tr").length.should == 3

Но это не работает (длина отсутствующего метода), и я не могу найти способ утверждать против длины таблицы.

Любые идеи любой (снисходительно отнестись ко мне, хотя я - рубин nooby),

Заранее спасибо

Neil

38
задан Raedwald 1 March 2019 в 14:10
поделиться

3 ответа

В конце концов я согласился с этим:

Then /^I should see "(.*)" once$/ do |text|
    within_table('myTable') do
      should have_xpath("//tr", :text => text, :count => 1)
    end
end

что казалось достаточно элегантным.

Я понимаю, что другие ответы работают, но это, кажется, хорошо читается.

Есть комментарии?

3
ответ дан 27 November 2019 в 03:17
поделиться

Думаю, вы можете это сделать:

page.should have_css("table#mytable tr", :count=>3)
19
ответ дан 27 November 2019 в 03:17
поделиться

Метод #find возвращает только один элемент (я думаю, что он возвращает только первый элемент, если есть несколько совпадений), поэтому вы не получите метод #length, потому что результатом #find является узел, а не массив.

Чтобы доказать это самому себе, попробуйте

puts find("//table[@id='myTable']/tr").class

То, что вам нужно, это #all, который вернет вам массив всех совпадающих узлов.

1
ответ дан 27 November 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: