参数化要传递的元素

时间:2016-01-14 21:27:12

标签: ruby page-object-gem

我正在使用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 个答案:

答案 0 :(得分:1)

您可以使用send方法调用基于String的方法:

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