Ruby 为什么从capybara查询返回的nil值或空数组具有文本属性?

Ruby 为什么从capybara查询返回的nil值或空数组具有文本属性?,ruby,angularjs,capybara,automated-tests,Ruby,Angularjs,Capybara,Automated Tests,疯狂的问题。我正在使用capybara、webdriver和firefox测试angularjs应用程序。我有一个返回作用域查询结果的方法: def all_list_items page.within(list_container) { page.all(list_item) } end 以及检索第一个结果的文本属性的第二个方法 def first_result_text all_list_items.first.text end 有时它返回一个空数组,也就是说,它没有找到任何东西

疯狂的问题。我正在使用capybara、webdriver和firefox测试angularjs应用程序。我有一个返回作用域查询结果的方法:

def all_list_items
  page.within(list_container) { page.all(list_item) }
end
以及检索第一个结果的文本属性的第二个方法

def first_result_text
  all_list_items.first.text
end
有时它返回一个空数组,也就是说,它没有找到任何东西。 当这种情况发生时,我调用空数组中的.text,它会给出屏幕上所有可见的文本

当我在空数组的第一项上调用.text时(因此在nil上调用它),它返回屏幕上所有可见的文本


我很困惑

#all返回一个没有#text方法的Capybara::Result-那么您看到的“空数组”是什么类呢?

您能告诉我您实际想要查找什么吗?仅单个值或集合?all查询应始终返回集合。我正在搜索集合中的项目,但问题更多的是空数组包含文本。