尝试通过分配给变量 i 来增加对象的值。请指教

trying to increment a value of the object by assigning to a variable i . Please advice

下面是我的 code.I 尝试将 excel sheet 中的值输入到页面中的文本框。例如:在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

但这对我不起作用。错误是 "unable to locate the capybara element allocationRegContrib[i].newFundValue"。请指教

您可能有两个问题:

i@i 不是一回事。我认为您可能希望在所有地方都使用 ii 是局部变量(即简单的普通旧变量)。 @i 是 class 的实例变量,就像其他语言中的 "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 时)