2010-06-22 101 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