Ruby / Watir - форматирование печати из массива - PullRequest
1 голос
/ 22 июня 2010

Я использую Watir для автоматического тестирования веб-сайта. В этом конкретном тесте я извлекаю массив номеров sku из листа Excel, а затем случайным образом выбираю один из массива для использования в качестве теста. Номер помещается в поле поиска, и он возвращает мой продукт.

Вот моя проблема: Я извлекаю данные из 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 ]

3 голосов
/ 23 июня 2010

Когда вы создаете sk, это массив, а не строка.Должно быть в состоянии сделать:

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

1 голос
/ 23 июня 2010

Должно быть, я что-то неправильно понимаю, но разве это не простое регулярное выражение?Skus всегда 6 цифр?В этом случае вы можете использовать:

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

или

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

Если они представляют собой числа переменной длины от 1 до 6 цифр, вы можете использовать:

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

НТН

...