2010-06-22 102 views
1

我正在使用Watir为网站进行一些自动测试。这个特殊的测试我从Excel工作表中拉出一组sku数字,然后从数组中随机选择一个作为我的测试。该号码被放入搜索字段中,并将我的产品拉回。Ruby/Watir - 从阵列格式化打印

这是我的问题: 我从Excel中提取数据,并在控制台中打印数据以验证正确的数据是否已收获。 ok 当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 

任何帮助非常感谢!

回答

3

当你创建sk时,它是一个数组而不是一个字符串。如果能够做到:

SK = SKU1 [兰特(sku1.length)to_s

1

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

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

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

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

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

HTH

+0

我不知道我的头在哪里。谢谢你们俩!! – r3nrut 2010-06-23 17:05:15