在我的网站上,我有这个清单:
<ul class="test">
<li class="social_1"></li>
<li class="social_2"></li>
<li class="social_3"></li>
<li class="social_3"></li>
</ul>
我的问题是:如何在 ul 类测试中计算 li 我试过这个:
my_ul = page.find("ul[class='test']")
my_ul.each do |li|
pp li['class']
end
但它没有用。
无论如何要做我上面编码的事情吗?
答案 0 :(得分:12)
假设ul父元素的id = parent ..你可以这样做
list = Array.new
list = find('#parent ul').all('li')
现在你可以简单地获取列表大小
list.size
你可以从阵列中的所有li中获益,也可以像这样在每个li中收集文本
list = find('#parent ul').all('li').collect(&:text)
答案 1 :(得分:6)
我建议使用新的RSpec 3语法来计算Capybara的元素:
it "should have 4 li elements" do
expect(find('ul.text')).to have_selector('li', count: 4)
end
答案 2 :(得分:1)
使用page.all("ul.test li").size