我正在使用页面工厂模式,参数错误显示我在那里
这是我的班级主页: -
require 'page-object/page_factory'
class Homepage
include PageObject
include Configuration
def initialize(browser)
@browser = browser
end
def open
goto("url")
end
def sign_in
@browser.element(css: 'div.links-static ul li.account div#login_user_data a.account').click
end
def create_account
@browser.element(css: 'div.ml_function.ml_function_arrowtoptoleft.padding_top_twenty.height_fifty input.ml_function_button_createaccountRegister').click
end
end
鉴于(/ ^我在shopclues主页$ /)做 访问(首页) 端
场景:用户需要创建一个新帐户 鉴于我在shopclues主页---->这里显示错误 当我点击登录 我填写了用户信息 然后我点击创建帐户 然后我应该看到用户详细信息
答案 0 :(得分:0)
问题是你已经为页面对象重新定义了initialize
方法。
当您include PageObject
时,initialize
method is already added:
def initialize(root, visit=false)
initialize_accessors if respond_to?(:initialize_accessors)
initialize_browser(root)
goto if visit && respond_to?(:goto)
initialize_page if respond_to?(:initialize_page)
end
请注意,默认方法最多可以接受2个参数。使用visit
方法时,页面对象初始化为2个参数。鉴于您已将initialize
方法重新定义为仅接受1个参数,则会发生异常。
除非您有特殊原因,否则您应该删除自定义initialize
- 即该类应该是:
class Homepage
include PageObject
include Configuration
def open
goto("url")
end
def sign_in
@browser.element(css: 'div.links-static ul li.account div#login_user_data a.account').click
end
def create_account
@browser.element(css: 'div.ml_function.ml_function_arrowtoptoleft.padding_top_twenty.height_fifty input.ml_function_button_createaccountRegister').click
end
end