首页 > 解决方案 > Ruby Selenium send_keys_characters 没有发送我想要的字符串

问题描述

xlsx = Roo::Excelx.new($docs_dir + '/mytestsheet.xlsx')
  xlsx.each_row_streaming do |row|
    send_keys_characters(row)
    step %[I wait for 2 sec]
  end
end        

我一直在努力从 xlsx 文件中提取值并将每个带有 send_keys_characters 的单元格发送到我网站上的手动输入字段中;我在这里有 2 个问题,我似乎无法找出解决方案:

  1. 它不会仅提取我想要的单元格的值,例如“test1”、“test2”,而是在另一个excel 功能之后写入:[#<Roo::Excelx::Cell::String:0x0000000008076b30 @cell_value=" test1", @style=0, @coordinate=[1, 1], @value="test1">] [#<Roo::Excelx::Cell::String:0x0000000006399800 @cell_value="test2", @style= 0, @coordinate=[2, 1], @value="test2">]

如何仅提取单元格的值并在我的输入字段中提及它然后提交?

  1. 它需要选择第一个值,然后提交并继续该场景,然后返回并选择第二个值,以此类推……如何一次选择一个值,然后进入下一步?

标签: excelrubycucumberspreadsheetrubymine

解决方案


这是一个红宝石/硒问题。

所以本质上你的问题是寻找代码来枚举你的对象并发送你想要的值。

我不熟悉 Roo,但如果他们使用标准阅读器,那么你就可以

array.each do |excel_string|
  input_field.send_keys(excel_string)
end

这将连接所有的值,所以你的输入字段会说test1test2

如果您需要在一组字段中输入这些,即 input_field 1/2/3 我会用它#zip来创建一个二维数组对

text_values = array.map(&:value)
zipped_array = input_fields.zip(text_values)

zipped_array.each do |input_field, value|
  input_field.send_keys(value)
end

推荐阅读