我使用页面对象模式 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
它工作正常,但看起来很沉重且不美观。有什么办法可以像 capybara “内部”方法一样编写它吗?以下是行不通的(错误:“无法将 Main 转换为字符串(TypeError)”)
within @main do
login_link.click
login_field.set login
pass_field.set pass
enter_button.click
end
最佳答案
您可以将对 with
语句的支持破解到 Ruby 中:
http://www.ruby-forum.com/topic/128781#574402
(我在 VBScript 中看到过这个,不确定是否有任何其他语言开箱即用地支持它)。
关于ruby - 我如何使用页面对象模式清除我的 capybara 步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15220470/