Ruby / Watir - 从数组格式化打印

时间:2010-06-22 17:16:42

标签: ruby excel arrays watir

我正在使用Watir为网站进行一些自动化测试。这个特殊的测试我从Excel工作表中提取一系列sku数字,然后从数组中随机选择一个用作我的测试。该号码被放入搜索字段,它会拉回我的产品。

这是我的问题: 我从Excel中提取数据,然后在控制台中打印数据以验证是否收获了正确的数据。好 当sku被放入网站上的搜索框时,它的格式如下: [ “000000”]

我需要删除方括号和引号。

我研究过漂亮的印刷品,虽然这样可以解决问题。这是我添加的漂亮照片:

def pretty_print(q)
        q.group(1, '[','"','"',']') {
        q.seplist(self) {|v|
        q.pp v
      }
    }
   end

以下是从数组中获取sku的代码,以及我尝试将上面的漂亮打印方法应用到字符串“sk”:

puts = "Data path : " + path
  workbook = excel.Workbooks.Open(path)
  worksheet = workbook.WorkSheets(1)
  worksheet.Select 
  puts "getting 2D Array from column range a2:a100 in sheet 2"
  sku1 = worksheet.Range("a2:a5").Value
  puts (sku1)

  $count = 1

  $count.times do |count|
    sk = sku1[rand(sku1.length)] 

    method_name = :"test_#{count}_#{sk}"  
    define_method method_name do
      pp (sk)
      search_string = sk

非常感谢任何帮助!!!

2 个答案:

答案 0 :(得分:3)

创建sk时,它是一个数组而不是字符串。应该可以做到:

sk = sku1 [rand(sku1.length)]。to_s

答案 1 :(得分:1)

我一定是在误解某些东西,但这不是一个简单的正则表达式吗? skus总是6位数?在这种情况下,您可以使用:

s.match(/\d{6}/).to_s

s.scan(/\d{6}/).first

如果它们是1到6位数的可变长度数字,您可以使用:

s.scan(/\d{1,6}/).first

HTH