ruby - 我如何使用页面对象模式清除我的 capybara 步骤?

标签 ruby cucumber capybara site-prism

我使用页面对象模式 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/

相关文章:

ruby-on-rails - 如何对对象数组进行排序?

java - 从另一个主要方法使用 Main.run 运行 Cucumber 项目

ruby-on-rails - 在 env.rb 之外需要 Cucumber-rails。其余的加载被推迟到 env.rb 被调用

java - 测试自动化源的位置

ruby-on-rails - rspec 集成测试中的 session 对象

ruby - 是否可以使用 RMagick 获得平均图像颜色?

ruby-on-rails - 将 CSV 流从 Ruby 上传到 S3

ruby-on-rails - Rails <ul> View 中带有数组

cucumber - Rails集成测试

capybara - Rails 5 Capybara 没有建立已经点击的按钮