2016-01-14 26 views
0

我正在使用pageobjects並想要參數化傳遞的元素。參數化傳遞的元素

下面的步驟工作正常:

text_field(:username, :id => "loginUserName") 

And(/^I enter (.*) for username in LoginPage$/) do |data, actual_field| 
    on_page @current_page do |page| 
    page.username_element.set data 
    end 

但我想參數化元素名稱:

And(/^I enter (.*) for (.*) in LoginPage$/) do |data, actual_field| 
    on_page @current_page do |page| 
    page.get_element(actual_field).set data 
    end 

我應該寫什麼方法返回username_element

def get_element(element_name) 
    return "#{element_name}+'_element'" 
end 

返回此方法字符串「username_element」,所以它不起作用。

任何建議....

回答

1

可以使用send方法來調用一個方法基於一個字符串:

page.send("#{actual_field}_element").set data 
+0

謝謝....這....工作對不起 – Poorvi

+0

,我不確定你問的是後續問題。你能詳細說明嗎? –

+0

和(/ ^我爲(。*)$ /輸入(。*)do | data,actual_field | on_page @current_page do | page | page.get_element(actual_field).SET數據 結束 結束 給出一個用戶我看到LoginPage 我在LoginPage 輸入「名」的用戶名和我在LoginPage 進入「password123」密碼這就職於頁面上的第一個元素。但對於第二個元素即密碼字段它失敗,原因如下 未定義的方法'params'爲# @current_page返回LoginPage第一次...它返回的第二個元素# Poorvi

相關問題