Я хочу взять имя страницы на шаге корнишона, а затем установить его как ссылку на объект (думаю, так оно и называется). Затем я могу использовать это для взаимодействия с элементами страницы. Есть ли более простой способ сделать это в рубине?
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