下面是我的代码。我正在尝试将excel工作表中的值输入到页面中的文本框。例如:在文本框中,id是'allocationRegContrib [17] .newFundValue'我想输入一个值20,类似于另一个id为'allocationRegContrib [18] .newFundValue'的文本框,我想输入一个值40。如何实现。类似地,id最多可达60.但我不想输入所有文本框。所以我试图使用像fill_in“allocationRegContrib [i] .newFundValue”。
@i=17
for j in (workbook.first_row..workbook.last_row)
for k in (workbook.first_column..workbook.last_column)
if(k==1)
fill_in "searchInput", :with => workbook.cell(j,1)
find(:xpath, '//*[@id="sdcaLink"]').click
sleep 3
else
choose("sdcaOption", :option => "YES")
select(workbook.cell(j,k), :from => 'sdcaDuration')
fill_in "allocationRegContrib[i].newFundValue", :with => workbook.cell(j,k)
@i=i+1
find(:xpath, '//*[@id="specialDCAupdate"]').click
但它对我不起作用。错误是“无法找到capybara元素allocationRegContrib [i] .newFundValue”。请建议
答案 0 :(得分:0)
您可能有两个问题:
i
和@i
不是一回事。我想你可能想在所有地方使用i
。 i
是一个局部变量(即一个简单的普通旧变量)。 @i
是类的实例变量,如其他语言中的“field”或“property”。
fill_in "allocationRegContrib[i].newFundValue", :with => workbook.cell(j,k)
应该是:
fill_in "allocationRegContrib[#{i}].newFundValue", :with => workbook.cell(j,k)
#{i}
将变量i
的值放入字符串中,然后水豚匹配器可以找到元素allocationRegContrib[17].newFundValue
(当i = 17时)