如何使用Cucumber和Webrat / Selenium的页面对象模式?

时间:2010-04-05 22:36:40

标签: selenium cucumber webrat

我正在看一个现在有些脆弱的黄瓜测试套件;许多小步骤,并且不了解页面本身。

我想在一系列Selenium PageObjects中分解步骤定义中涉及的逻辑。 As seen here.

然而,因为我使用的是Webrat而不是Selenium,所以一切都必须通过Webrat模型。所以我做不到

class MyPage < Selenium::WebPage

end

因为这会增加直接依赖性。

所以我必须通过Webrat路由一切,同时仍然保持Selenium Page对象的优点。我没有看到关于此的文档:如果有人在Webrat + PageModel上有任何内容我很乐意看到它。

2 个答案:

答案 0 :(得分:1)

原来答案是:

class MyPage < BasePage
  def visit
    @world.visit "/"
  end

end

class BasePage
  def initialize(world)
    @world = world
  end
end

然后在步骤定义中:

Given /I am awesome/ do
  page = MyPage.new(self)
  page.visit
end

答案 1 :(得分:0)

我们刚发布了一些听起来就像你所追求的东西。 看看Gizmo - http://rubygems.org/gems/gizmo/ 与(webrat | capybara),(黄瓜| rspec)等合作。