Page Object Pattern gem 'site_prism' を使用した次のステップ定義があります。
class Main < SitePrism::Page
element :login_link, "a.log-in-link"
element :login_field, "input[name='userLogin']"
element :pass_field, "input[name='userPassword']"
element :enter_button, ".button_pretty"
end
If /I'm log in as "([^"]*)" with password "([^"]*)"$/ do |login, pass|
@main = Main.new
@main.login_link.click
@main.login_field.set login
@main.pass_field.set pass
@main.enter_button.click
end
それは正常に機能しますが、非常に重く、美しくありません。カピバラのwithinメソッドのように書く方法はありますか?以下は機能しません (エラー:「メインを文字列に変換できません (TypeError)」)
within @main do
login_link.click
login_field.set login
pass_field.set pass
enter_button.click
end