Capybara set和fill_in有何不同?

时间:2014-08-19 09:13:32

标签: capybara

最近我发现使用'find'的水豚找到的元素可能无法与'fill_in'一起使用(参阅:Capybara can find but not fill_in

所以fill_in和find使用的params是不同的。因此,我可以使用set填写我使用“find”找到的表单字段。

还有其他区别吗?

1 个答案:

答案 0 :(得分:2)

就实际输入字段而言,setfill_in完全相同。

fill_in的方法定义是:

def fill_in(locator, options={})
  raise "Must pass a hash containing 'with'" if not options.is_a?(Hash) or not options.has_key?(:with)
  with = options.delete(:with)
  fill_options = options.delete(:fill_options)
  find(:fillable_field, locator, options).set(with, fill_options)
end

正如您在最后一行所看到的,fill_in方法正在做同样的事情 - 即使用find获取节点,然后使用set输入它。