如何在 ruby 中将字符串转换为对象引用

How to convert a string to an object reference in ruby

我想在小黄瓜步骤中获取页面名称,然后将其设置为对象引用(我想这就是它的名称。)然后我可以使用它与页面元素进行交互。在 ruby 中有更简单的方法吗?

When(/^I am on the (.*) page$/) do |page|
  case page
  when "home page"
  @current_page = @home_page
  when "my account page"
  @current_page = @my_account_page
  end
end

然后

When(/^I click the (.*)$/) do |element|
 @current_page.send(element).click
end

您可以使用 instance_variable_get:

When(/^I am on the (.*) page$/) do |page|
  @current_page = instance_variable_get("@#{page}")
end

如果 page 值与您的实例变量完美匹配,这将起作用,例如

page = "my_account_page"

# The following two lines are equivalent
instance_variable_get("@#{page}")
@my_account_page