1

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

这是我的问题:我从 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

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

4

2 回答 2

3

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

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

于 2010-06-22T22:17:14.517 回答
1

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

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

或者

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

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

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

高温高压

于 2010-06-23T13:46:01.180 回答