I am using pageobjects and want to parameterize the element being passed.
Below step works fine:
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
But I want to parameterize the element name:
And(/^I enter (.*) for (.*) in LoginPage$/) do |data, actual_field|
on_page @current_page do |page|
page.get_element(actual_field).set data
end
What method should I write to return username_element
def get_element(element_name)
return "#{element_name}+'_element'"
end
This method returned string "username_element" so it doesnt work.
Any suggestions....
You can use the send
method to call a method based on a String:
page.send("#{actual_field}_element").set data