如何在水豚中使用fill_in(如果可能的话)

我想要做以下事情,但不能由于fill_in期待locator作为第一个参数的性质。

find(:css, "input[id$='donation_pledge_hundreds']").fill_in :with => "10" 

我也尝试过

 element = find(:css, "input[id$='donation_pledge_hundreds']") fill_in element.<method> , :with => "10" 

但是没有方法返回任何数据来标识fill_in的元素。

任何想法通过正则expression式find一个字段的最佳方式与fill_in一起使用?

从内存中走,所以可能不是100%正确的,但我想如果你有一个引用元素本身,你会使用set而不是fill_in

 find(:css, "input[id$='donation_pledge_hundreds']").set("10") 

但是,对于您的具体示例, fill_in应该能够find元素,因为您知道它是ID:

 fill_in 'donation_pledge_hundreds', with: "10" 

而不是一个方法,你可以使用括号来返回:name:id ,例如element = find(:css, "input[id$='donation_pledge_hundreds']") fill_in element[:name], :with => "10"同样的方法可以使用selectselect my_type, from: find('select[name$="[type]"]')[:name]

 find("input[id$='donation_pledge_hundreds']").set "10" 

值得注意的是,你可以链接你的发现。

 @modal = find(".modal") @modal.find('input[name=foo]').set "bar" 
 fill_in <$id>, :with => 'text you want to fill in'