我有这两种方法,显然有很多相似之处。但是,它们的区别是根本性的,以至于我还没有找到让它们共享一些代码的方法。
非常感谢 Ruby 大师的任何想法!
方法一:
def fill_out(page, *fields)
methods=[ lambda{|p, f| p.send(f).fit(instance_variable_get f) },
lambda{|p, f| p.send(f).pick!(instance_variable_get f) } ]
fields.shuffle.each do |field|
x = page.send(field).class.to_s=='Watir::Select' ? 1 : 0
methods[x].call(page, field)
end
end
方法二:
def fill_out_item(name, page, *fields)
methods=[ lambda{|n, p, f| p.send(f, n).fit(instance_variable_get f) },
lambda{|n, p, f| p.send(f, n).pick!(instance_variable_get f) } ]
fields.shuffle.each do |field|
x = page.send(field, name).class.to_s=='Watir::Select' ? 1 : 0
methods[x].call(name, page, field)
end
end