我想做以下但不能因为fill_in的性质而期望定位器作为第一个参数。
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的元素。
通过正则表达式查找字段以与fill_in一起使用的最佳方法的任何想法?
答案 0 :(得分:153)
从内存中去,所以可能不是100%正确,但我认为如果你有一个元素本身的引用你会使用set
而不是fill_in
:
find(:css, "input[id$='donation_pledge_hundreds']").set("10")
但是对于您的具体示例,fill_in
应该能够找到该元素,因为您知道它的ID:
fill_in 'donation_pledge_hundreds', with: "10"
答案 1 :(得分:5)
您可以使用括号返回:name
或:id
,而不是方法,而不是方法。
element = find(:css, "input[id$='donation_pledge_hundreds']")
fill_in element[:name], :with => "10"
同样的方法可以与select
一起使用 -
select my_type, from: find('select[name$="[type]"]')[:name]
答案 2 :(得分:3)
find("input[id$='donation_pledge_hundreds']").set "10"
值得注意的是,你可以链接你的发现。
@modal = find(".modal")
@modal.find('input[name=foo]').set "bar"
答案 3 :(得分:1)
element = find(:css, "input[id$='donation_pledge_hundreds']")
element.fill_in with: "10"
答案 4 :(得分:0)
fill_in <$id>, :with => 'text you want to fill in'