我可以用 PageObject::PageFactory 不加黄瓜吗?
Can I use PageObject::PageFactory without cucumber?
我想知道是否可以在没有黄瓜的情况下使用 PageObject::PageFactory。我试过
World(PageObject::PageFactory)
但是没有黄瓜就没有世界。我找不到另一种方式的示例。
我为什么要做那么疯狂的事情?我想创建一个 gem,测试人员可以下载它来针对我们测试的产品使用。我喜欢 cukes,但我也希望将其用于探索性测试。我已经在其余端点上成功地做到了这一点。
我知道我可以在没有 PageFactory 的情况下做到这一点,但是以这种方式使用 PageObject 感觉就像我在作弊一样简单。我想使用这些模式。
visit(NewAccountPage)
on(NewAccountPage).create_account
也许完全有另一种方法?
是的,你可以。您需要做两件事:
- 在要使用
visit
、on
等方法的对象中包含PageObject::PageFactory
。 (这就是 Cucumber 的 World
方法所做的。)
- 为
Watir::Browser
对象定义一个 @browser
变量。
下面是一个使用PageFactory
的例子:
require 'watir-webdriver'
require 'page-object'
# A page object
class GooglePage
include PageObject
page_url 'http://www.google.com'
end
# Including the page factory methods in the main
include PageObject::PageFactory
# Assign a browser to @browser
@browser = Watir::Browser.new :chrome
# Using the page factory
visit(GooglePage)
p on(GooglePage).current_url
#=> "https://www.google.ca/?gfe_rd=cr&ei=UxfbVdnCAaeD8QeM96CACg&gws_rd=ssl"
我想知道是否可以在没有黄瓜的情况下使用 PageObject::PageFactory。我试过
World(PageObject::PageFactory)
但是没有黄瓜就没有世界。我找不到另一种方式的示例。
我为什么要做那么疯狂的事情?我想创建一个 gem,测试人员可以下载它来针对我们测试的产品使用。我喜欢 cukes,但我也希望将其用于探索性测试。我已经在其余端点上成功地做到了这一点。
我知道我可以在没有 PageFactory 的情况下做到这一点,但是以这种方式使用 PageObject 感觉就像我在作弊一样简单。我想使用这些模式。
visit(NewAccountPage)
on(NewAccountPage).create_account
也许完全有另一种方法?
是的,你可以。您需要做两件事:
- 在要使用
visit
、on
等方法的对象中包含PageObject::PageFactory
。 (这就是 Cucumber 的World
方法所做的。) - 为
Watir::Browser
对象定义一个@browser
变量。
下面是一个使用PageFactory
的例子:
require 'watir-webdriver'
require 'page-object'
# A page object
class GooglePage
include PageObject
page_url 'http://www.google.com'
end
# Including the page factory methods in the main
include PageObject::PageFactory
# Assign a browser to @browser
@browser = Watir::Browser.new :chrome
# Using the page factory
visit(GooglePage)
p on(GooglePage).current_url
#=> "https://www.google.ca/?gfe_rd=cr&ei=UxfbVdnCAaeD8QeM96CACg&gws_rd=ssl"