参数化传递的元素

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