2013-04-28 72 views
0

我尝试从我的模块访问自定义JS-widget。 基页类只包含PageObject,DataMagic和RSpec :: Matchers。从模块访问JS-widget

我班

require_all 'lib/pages/billing/billing_form_panel.rb' 

class RealtyCpBillingPage < BasePage 
    include BillingFormPanel 
end 

模块

require_all 'lib/widgets/jquery_datepicker.rb' 

module BillingFormPanel 
    include PageObject 

    button :show_datepicker, class: 'ui-datepicker-trigger' 

    jquery_datepicker :datepicker, id: 'ui-datepicker-div' 

    def datepicker 
     datepicker_element 
    end 

    def select_packet data 
     if data['date'] 
      show_datepicker 
      data['date'] = data['date'].split(' ').reverse 
      datepicker.year = data['date'][0] 
      datepicker.month = data['date'][1] 
     end 
    end 
end 

JQuery的UI日期选择器插件

class JQueryDatepicker < PageObject::Elements::Div 

    include PageObject 

    PageObject.register_widget :jquery_datepicker, JQueryDatepicker, :div 

    def month month 
     select_list_element(class: 'ui-datepicker-month').select month 
    end 

    def year year 
     select_list_element(class: 'ui-datepicker-year').select year 
    end 
end 

和步骤:

Если(/^если выбираю тариф:$/) do |table| 
    on(RealtyCpBillingPage).select_packet table.hashes.first 
end 

当运行这个测试,我看到以下错误:

Unable to pick a platform for the provided browser (RuntimeError) 
    ./lib/pages/billing/billing_form_panel.rb:22:in `datepicker' 
    ./lib/pages/billing/billing_form_panel.rb:34:in `select_packet' 

所以,我怎样才能获得从我的模块,它的Widget?

UPD:浏览器从这里开始hooks.rb

Before do 
    @browser = Watir::Browser.new :firefox 
    @browser.driver.manage.timeouts.implicit_wait = 8 
end 

After do 
    @browser.close 
end 
+0

除了includes以外,基类中还有其他的东西吗? – Cheezy 2013-04-28 14:43:57

+0

绝对没有。 BasePage只包含那个包含。 另外,当我直接添加datepicker元素到页面 - 它工作正常。但我需要从我的模块访问它 – 2013-04-29 02:19:29

+0

错误消息说启动浏览器时出现问题。请分享启动浏览器的代码。 – 2013-04-29 09:04:26

回答