参数化传递的元素
Parameterize the element being passed
我正在使用 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
应该写什么方法给returnusername_element
def get_element(element_name)
return "#{element_name}+'_element'"
end
此方法return编辑了字符串"username_element",因此它不起作用。
有什么建议....
您可以使用send
方法调用基于字符串的方法:
page.send("#{actual_field}_element").set data
我正在使用 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
应该写什么方法给returnusername_element
def get_element(element_name)
return "#{element_name}+'_element'"
end
此方法return编辑了字符串"username_element",因此它不起作用。
有什么建议....
您可以使用send
方法调用基于字符串的方法:
page.send("#{actual_field}_element").set data