2013-05-16 59 views
0

Iam試圖獲取所有失敗的列表。如果找不到id中的任何一個,則捕獲錯誤消息.Follwoing是一個水豚自動化腳本。作爲ruby中的參數的數組

在下面的代碼中異常處理工作正常!

puts "Verifying Home Page" 
     def verifyHomepage(id, successMsg, errorMsg) 
     begin 
     page.find(id) 
     puts successMsg 
     rescue 
     puts errorMsg 
     end 
    end 

    verifyHomepage("#logoAnchor", "logo anchor found", "Logo anchor not Found") 
    verifyHomepage(".navbar-inner", "Header Bar found", "Header Bar not Found") 
    verifyHomepage(".unstyled", "All Occasions Frame found", "All Occasions Frame not Found") 
    verifyHomepage("##easyPrintPromoBox", "Easy Print Frame", "Easy Print Frame not Found") 
    verifyHomepage(".tabbable", "l3 Tabs Featured Occasions/Pairings/ArtistEasy Print Frame", "3 Tabs Featured Occasions/Pairings/ArtistEasy Print Frame Not found") 
    verifyHomepage("##givingCardPromoBox", "Create the perfect gift found", "Create the perfect gift not Found") 
    verifyHomepage(".footerr", "Footer Frame found", "Footer Frame found not Found") 

這裏使用不同的param值IAM反覆調用verifyHomePage方法7倍。

它是如何possbile傳遞,而不是string values.what我說的是3 paramsarray值是 如:

verifyHomepage(idArray[],successMsg[],errorMsg[]) 
+0

你不指定在函數聲明的參數類型,如果你想傳遞一個元素的數組,這將是'[某物]' –

回答

1

你有什麼建議:

verifyHomepage(idArray[],successMsg[],errorMsg[]) 

是可能的,但此時你保持需要保持同步三個數組。哈希值的數組是一種更清潔的方法:

def verifyHomepage(items) 
    items.each do |item| 
    begin 
     page.find(item[:selector]) 
     puts item[:successMsg] 
    rescue 
     puts item[:errorMsg] 
    end 
    end 
end 

items = [{ :selector => "#logoAnchor", 
      :successMsg => "logo anchor found", 
      :errorMsg => "Logo anchor not Found"}, 
     { :selector => ".navbar-inner", 
      :successMsg => "Header Bar found", 
      :errorMsg => "Header Bar not Found"}, 
     { :selector => ".unstyled", 
      :successMsg => "All Occasions Frame found", 
      :errorMsg => "All Occasions Frame not Found"}, 
     { :selector => "##easyPrintPromoBox", 
      :successMsg => "Easy Print Frame", 
      :errorMsg => "Easy Print Frame not Found"}, 
     { :selector => ".tabbable", 
      :successMsg => "l3 Tabs Featured Occasions/Pairings/ArtistEasy Print Frame", 
      :errorMsg => "3 Tabs Featured Occasions/Pairings/ArtistEasy Print Frame Not found"}, 
     { :selector => "##givingCardPromoBox", 
      :successMsg => "Create the perfect gift found", 
      :errorMsg => "Create the perfect gift not Found"}, 
     { :selector => ".footerr", 
      :successMsg => "Footer Frame found", 
      :errorMsg => "Footer Frame found not Found"}] 

puts "Verifying Home Page" 
verifyHomepage(items) 
+0

謝謝。它正在工作 – chinchu

+0

,現在對於獎金問題,接受單個物品以及一系列物品的最優雅的方式是什麼,而不需要調用者將其物品包裝在'[]'中。 – nus

2

您可以使用圖示操作中的變量數傳你的方法的參數,每個參數可以是一個3元素的數組。

def verifyHomepage(*args) 
    args.each do |a| 
    id = a[0] 
    successMsg = a[1] 
    errorMsg = a[2] 
    # process args 
    end 
end 

verifyHomepage(['.footerr', 'Footer Frame found', 'Footer Frame not found'], ['#giving', 'Create the perfect gift', 'not found'])