2016-07-19 7 views
0

を生成していない私は、ページwww.jira.com用のFirebugでDOMで見つかった層が、私のスクリプトで宣言されたハッシュ値と一致しているかどうかをチェックするRubyスクリプトを書きました。以下は、私が書いたRubyスクリプトです:WaitrとのJiraの統合は、所望の出力

require 'watir' 

browser = Watir::Browser.new(:chrome) 

browser.goto('https://jira.com') 

JIRA_DATA_LAYER = { 
    'jira' => { 
       'event'  => ['gtm.js', 'gtm.load'], 
       'gtm.start' => '1468949036556', 
       } 
} 

def get_jira_data_layer(get_data_layer) 
    result = [] 

    get_data_layer.each do |data_layer| 
     data_layer.each do |data_layer_key, data_layer_value| 
      result << {"#{data_layer_key}" => data_layer_value} 
     end 
    end 

    return result 
end 

def compare_jira_data_layer(layer, jira_name) 
    message = [] 
    index = 0 

    JIRA_DATA_LAYER[jira_name].each do |jira_key, jira_value| 
     if layer.include?({jira_key => jira_value}) 
      result = 'matches - PASS' 
     else 
      result = 'matches - FAIL' 
     end 

     index += 1 
     message.push("'#{jira_key} => #{jira_value}' #{result}") 
    end 

    return message.join("\n") 
end 

data_layer = browser.execute_script("return dataLayer") 
get_data_layer = get_jira_data_layer(data_layer) 
compare_data_layer = compare_jira_data_layer(get_data_layer, "jira") 
puts compare_data_layer 

私は次の出力を取得しています:

'event => ["gtm.js", "gtm.load"]' matches - FAIL 
'gtm.start => 1468949036556' matches - FAIL 

私は次のように達成したい:

'event => gtm.js' matches - FAIL 
'gtm.start => 1468949036556' matches - FAIL 
+1

はあなたが与えることができると同じくらい無意味な記述がある「動作しない」を覚えておいてください。 – tadman

+0

@tadman Oh.Thanksと申し訳ありません –

答えて

0

あなたは単に変更することができますJIRA_DATA_LAYERでeventキーの値が、私はそれがそのようにする必要があり推測します。

ifこのハッシュのキーを確認するときに文を開き、特定のキーの値が配列かどうかを確認するためにis_a?メソッドを使用してください。その場合は、この配列のメンバーeachをループします。

+0

私は本当にあなたが与えた提案をありがとうございましたが、あなたは私のコードを与えることができれば、それは本当に大きな助けになるでしょう –

関連する問題