明らかに多くの類似点があるこれら 2 つの方法があります。しかし、それらの違いは根本的なものであるため、コードを共有する方法をまだ見つけていません。
Ruby の達人からのアイデアは大歓迎です!
方法 1:
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
方法 2:
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