Ruby / Watir – 从arrays中打印格式

我正在使用Watir为网站做一些自动化testing。 这个特殊的testing,我从一个Excel工作表中拉出一系列sku数字,然后从数组中随机select一个作为我的testing。 该号码被放置在search字段中,并将我的产品拉回。

这是我的问题:我从Excel中提取数据,然后在控制台中打印数据以validation正确的数据是否已收获。 ok当sku被放到网站的search框中时,它的格式如下:[“000000”]

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

我研究了漂亮的打印,尽pipe这样做会有效果。 这是我添加的漂亮的打印:

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

下面是从数组中获取SKU的代码,并试图将上面的漂亮的打印方法应用到string“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 

任何帮助是极大的赞赏!!!

当你创buildsk时,它是一个数组而不是一个string。 应该可以做到:

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

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

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

要么

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

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

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

HTH