在rspec / capybara中,我需要一个“内部”版本来检查所有后代,而不仅仅是孩子

时间:2013-07-22 06:12:48

标签: ruby-on-rails rspec capybara

我有一段代码,用于计算下拉菜单中的列表项数:

within ('#campaign_duration_in_days_input') do
  page.all('li').count.should eql(4)
end

返回0,尽管有四个列表项作为该div的后代(不是直接子项)。我如何计算所有后代的数量?

1 个答案:

答案 0 :(得分:0)

我看不出你的代码有什么问题。 within适用于间接后代和直接子女。如果参数#campaign_duration_in_days_input,它也会抛出错误,因此看起来该元素存在。

所以看起来它只是找不到任何li元素。如果这是一个普通的旧HTML select下拉列表,您是否应该查找option元素?如果没有,那么在内部之前立即尝试save_and_open_page来检查DOM,看看发生了什么。